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

MySQL数据库

开发平台:

Visual C++

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <mysql++>
  4. int main() {
  5.   // The full format for the Connection constructor is
  6.   // Connection(cchar *db, cchar *host="", 
  7.   //            cchar *user="", cchar *passwd="") 
  8.   // You may need to specify some of them if the database is not on
  9.   // the local machine or you database username is not the same as your
  10.   // login name, etc..
  11.   try {
  12. Connection con("mysql_cpp_data");
  13. Query query = con.query();
  14. // This creates a query object that is bound to con.
  15. query << "select * from stock";
  16. // You can write to the query object like you would any other ostrem
  17. Result res = query.store();
  18. // Query::store() executes the query and returns the results
  19. cout << "Query: " << query.preview() << endl;
  20. // Query::preview() simply returns a string with the current query
  21. // string in it.
  22. cout << "Records Found: " << res.size() << endl << endl;
  23.   
  24. Row row;
  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.   
  33. Result::iterator i;
  34. // The Result class has a read-only Random Access Iterator
  35. for (i = res.begin(); i != res.end(); i++) {
  36. row = *i;
  37. cout << setw(17) << row[0] 
  38. << setw(4)  << row[1] 
  39. << setw(7)  << row["weight"]
  40. // you can use either the index number or column name when
  41. // retrieving the colume data as demonstrated above.
  42. << setw(7)  << row[3]
  43. << row[4] << endl;
  44. }
  45.   } catch (BadQuery er){ // handle any connection 
  46.                          // or query errors that may come up
  47.     cerr << "Error: " << er.error <<  endl;
  48.     return -1;
  49.   } catch (BadConversion er) {
  50.     // we still need to cache bad conversions incase something goes 
  51.     // wrong when the data is converted into stock
  52.     cerr << "Error: Tried to convert "" << er.data << "" to a ""
  53.  << er.type_name << ""." << endl;
  54.     return -1;
  55.   }
  56. return 0;
  57. }