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

MySQL数据库

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <sqlplus.hh>
  5. int main() {
  6.   try { // its in one big try block
  7.     Connection con(use_exceptions);
  8.     con.connect("mysql_cpp_data");
  9.     // Here I broke making the connection into two calls.
  10.     // The first one creates the Connection object with the 
  11.     // use exceptions option turned on and the second one
  12.     // makes the connection
  13.     
  14.     Query query = con.query();
  15.     
  16.     query << "select * from stock";
  17.     Result res = query.store();
  18.     
  19.     cout << "Query: " << query.preview() << endl;
  20.     cout << "Records Found: " << res.size() << endl << endl;
  21.     
  22.     Row row;
  23.     cout.setf(ios::left);
  24.     cout << setw(17) << "Item" 
  25.        << setw(4)  << "Num"
  26.        << setw(7)  << "Weight"
  27.        << setw(7)  << "Price" 
  28.        << "Date" << endl
  29.        << endl;
  30.   
  31.     Result::iterator i;
  32.     
  33.     cout.precision(3);
  34.     for (i = res.begin(); i != res.end(); i++) {
  35.       row = *i;
  36.       cout << setw(17) << row["ITEM"] << "," << setw(4) << row[1] 
  37.    << setw(7)  << (double) row[2]
  38. // This is converting the row to a double so that we
  39. // can set the precision of it.  
  40. // ColData has the nice feature that it will convert to
  41. // any of the basic c++ types.  if there is a problem
  42. // in the conversion it will throw an exception (which I 
  43. // cache below).  To test it try changing the 2 in row[2]
  44. // to row[0]
  45.    << setw(7) << (double)row[3];
  46.       Date date = row["SDATE"]; 
  47.       // The ColData is implicitly converted to a date here.
  48.       cout.setf(ios::right);
  49.       cout.fill('0');
  50.       cout << setw(2) << date.month << "-" << setw(2) << date.day << endl;
  51.       cout.fill(' ');
  52.       cout.unsetf(ios::right);
  53.     }
  54.     return 0;
  55.   } catch (BadQuery er) { // handle any connection or
  56.                           // query errors that may come up
  57.     cerr << "Error: " << er.error << endl;
  58.     return -1;
  59.   } catch (BadConversion er) { // handle bad conversions
  60.     cerr << "Error: Tried to convert "" << er.data << "" to a "" 
  61.  << er.type_name << ""." << endl;
  62.     return -1;
  63.   }
  64. }