custom4.cpp
上传用户:clovervx
上传日期:2010-03-30
资源大小:787k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <set>
  4. #include <sqlplus.hh>
  5. #include <custom.hh>
  6. sql_create_5(stock, 
  7.      1, // This number is used to make a SSQLS less-than-comparable.
  8.         // If this number is n then if the first n elements are the 
  9.         // same the two SSQLS are the same.  
  10.         // In this case if two two stock's "item" are the same then
  11.         // the two stock are the same.
  12.      5, // this number should generally be the same as the number of
  13.         // elements in the list unless you have a good reason not to.
  14.      string,item, int,num,  double,weight,  double,price,  Date,sdate)
  15. int main() {
  16.   try { // its in one big try block
  17.     Connection con(use_exceptions);
  18.     con.connect("mysql_cpp_data");
  19.     Query query = con.query();
  20.     query << "select * from stock";
  21.     
  22.     set<stock> res;
  23.     query.storein(res);
  24.     // here we are storing the elements in a set not a vector.
  25.     cout.setf (ios::left);
  26.     cout << setw (17) << "Item"
  27.  << setw (4) << "Num"
  28.  << setw (7) << "Weight"
  29.  << setw (7) << "Price"
  30.  << "Date" << endl
  31.  << endl;
  32.     // Now we we iterate through the set.  Since it is a set the list will
  33.     // naturally be in order.
  34.     
  35.     set<stock>::iterator i;
  36.     cout.precision(3);
  37.     for (i = res.begin (); i != res.end (); i++) {
  38.       cout << setw (17) << i->item.c_str ()
  39.    << setw (4) << (int)(i->num)
  40. // VC++ gives an error when using cout << on a long long, so
  41. // it's cast to an int here
  42.    << setw (7) << i->weight
  43.    << setw (7) << i->price
  44.    << i->sdate
  45.    << endl;
  46.     }
  47.     
  48. i = res.find(stock("Hamburger Buns"));
  49.     if (i != res.end())
  50.       cout << "Hamburger Buns found.  Currently " << (int)(i->num) << " in stock.n";
  51. // VC++ gives an error when using cout << on a long long, so
  52. // it's cast to an int here
  53.     else
  54.       cout << "Sorry no Hamburger Buns found in stockn";
  55.     // Now we are using the set's find method to find out how many
  56.     // Hamburger Buns are in stock.
  57.     return 0;
  58.   } catch (BadQuery er) {
  59.     cerr << "Error: " << er.error << endl;
  60.     return -1;
  61.   } catch (BadConversion er) { 
  62.     cerr << "Error: Tried to convert "" << er.data << "" to a "" 
  63.  << er.type_name << ""." << endl;
  64.     return -1;
  65.   }
  66. }