common.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include "common.hpp"
  14. NdbOut &
  15. operator << (NdbOut & out, const Employee_t & emp){
  16.   out << emp.EmpNo << " "" << emp.FirstName << "" "" 
  17.       << emp.LastName << """;
  18.   return out;
  19. }
  20. bool
  21. operator==(const Employee_t & e1, const Employee_t & e2){
  22.   if(e1.EmpNo != e2.EmpNo)
  23.     return false;
  24.   if(strcmp(e1.FirstName, e2.FirstName) != 0)
  25.     return false;
  26.   return strcmp(e1.LastName, e2.LastName) == 0;
  27. }
  28. void
  29. Alter(Employee_t & emp){
  30.   static int updown = 0;
  31.   if(updown == 0){
  32.     for(int i = 0; i<strlen(emp.FirstName); i++)
  33.       toupper(emp.FirstName[i]);
  34.     
  35.     for(int i = 0; i<strlen(emp.LastName); i++)
  36.       toupper(emp.LastName[i]);
  37.   } else {
  38.     for(int i = 0; i<strlen(emp.FirstName); i++)
  39.       tolower(emp.FirstName[i]);
  40.     
  41.     for(int i = 0; i<strlen(emp.LastName); i++)
  42.       tolower(emp.LastName[i]);
  43.   }
  44.   updown = 1 - updown;
  45. }
  46. void
  47. CompareRows(Employee_t * data1,
  48.     int rows,  
  49.     Employee_t * data2){
  50.   for(int i = 0; i<rows; i++){
  51.     if(!(data1[i] == data2[i])){
  52.       ndbout << data1[i] << endl
  53.      << data2[i] << endl;
  54.     }
  55.   }
  56. }
  57. void
  58. AlterRows(Employee_t * data1, int rows){
  59.   for(int i = 0; i<rows; i++){
  60.     Alter(data1[i]);
  61.   }
  62. }
  63. inline
  64. NdbOut &
  65. operator << (NdbOut & out, const Address_t & adr){
  66.   out << adr.EmpNo << " "" << adr.StreetName << "" " 
  67.       << adr.StreetNo << " "" << adr.City << """;
  68.   return out;
  69. }
  70. inline
  71. bool
  72. operator==(const Address_t & a1, const Address_t & a2){
  73.   if(a1.EmpNo != a2.EmpNo)
  74.     return false;
  75.   if(a1.StreetNo != a2.StreetNo)
  76.     return false;
  77.   if(strcmp(a1.StreetName, a2.StreetName) != 0)
  78.     return false;
  79.   return strcmp(a1.City, a2.City) == 0;
  80. }
  81. inline
  82. void
  83. Alter(Address_t & emp){
  84.   static int updown = 0;
  85.   if(updown == 0){
  86.     for(int i = 0; i<strlen(emp.StreetName); i++)
  87.       toupper(emp.StreetName[i]);
  88.     
  89.     for(int i = 0; i<strlen(emp.City); i++)
  90.       toupper(emp.City[i]);
  91.   } else {
  92.     for(int i = 0; i<strlen(emp.StreetName); i++)
  93.       tolower(emp.StreetName[i]);
  94.     
  95.     for(int i = 0; i<strlen(emp.City); i++)
  96.       tolower(emp.City[i]);
  97.   }
  98.   emp.StreetNo *= emp.EmpNo;
  99.   updown = 1 - updown;
  100. }
  101. void
  102. CompareRows(Address_t * data1,
  103.     int rows,  
  104.     Address_t * data2){
  105.   for(int i = 0; i<rows; i++){
  106.     if(!(data1[i] == data2[i])){
  107.       ndbout << data1[i] << endl
  108.      << data2[i] << endl;
  109.     }
  110.   }
  111. }
  112. void
  113. AlterRows(Address_t * data1, int rows){
  114.   for(int i = 0; i<rows; i++){
  115.     Alter(data1[i]);
  116.   }
  117. }