sinisa_ex.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #include <windows.h>
  2. #include <vector>
  3. #include <string>
  4. #include <iostream>
  5. #include <iomanip>
  6. #include <sqlplus.hh>
  7. int main() {
  8.   vector<string> yy;
  9.   Connection con(use_exceptions);
  10. try {
  11. con.real_connect ("","localhost","root","",3306,(int)0,60,NULL);
  12. cout << con.clinet_info() << endl << endl;
  13.   Query query = con.query();
  14.   query << "show databases";
  15.   Result res = query.store();
  16.   //cout << "Query: " << query.preview() << endl;
  17.   cout << "Records Found: " << res.size() << endl << endl;
  18.   
  19.   Row row;
  20.   cout.setf(ios::left);
  21.   cout << setw(17) << "Databases"  << endl << endl;
  22.   
  23.   Result::iterator i;
  24.   for (i = res.begin(); i != res.end(); i++) {
  25.     row = *i;
  26.     cout << setw(17) << row[0]  << endl;
  27.   }
  28. char database [] = "mysql";
  29.   con.select_db (database);
  30.   query << "show tables";
  31.   res = query.store();
  32.   //cout << "Query: " << query.preview() << endl;
  33.   cout << "Records Found: " << res.size() << endl << endl;
  34.   
  35.   cout.setf(ios::left);
  36.   cout << setw(17) << "Tables"  << endl << endl;
  37.   for (i = res.begin(); i != res.end(); i++) {
  38.     row = *i;
  39. string xx(row[0]);
  40.     cout << setw(17) << row[0]  << endl;
  41. yy.insert(yy.end(),xx);
  42.   }
  43. for (unsigned int j = 0; j < yy.size();j++) {
  44. query << "describe " << yy[j] << "";
  45. cout << query.preview() << endl << endl;
  46. res = query.store();
  47. unsigned int columns = res.num_fields(), counter;
  48. cout << setw(15) << endl;
  49. for (counter = 0; counter < columns; counter++) {
  50. cout << setw(15) << res.names(counter) << "  ";
  51. }
  52. cout << endl << endl;
  53. for (i = res.begin(); i!=res.end();i++) {
  54. row = *i;
  55. for (counter = 0; counter < columns; counter++)  {
  56. cout << row[counter] << "  ";
  57. }
  58. cout << endl;
  59. }
  60. }
  61. query << "select * from user";
  62. res  =  query.store(); int columns =  res.num_fields();
  63. cout << query.preview() << endl << endl;
  64. cout << "fields = " << res.num_fields() << "rows = " << res.size() << endl;
  65. volatile MYSQL_RES *ress= res.mysql_result(); 
  66. if (!ress) return -1;
  67. for (i = res.begin(); i!=res.end();i++) {
  68. row = *i;
  69. for (int counter = 0; counter < columns; counter++)  {
  70. cout << row[counter] << "  ";
  71. }
  72. cout << endl;
  73. }
  74.   } catch (BadQuery er){ // handle any connection 
  75.                          // or query errors that may come up
  76.     cerr << "Error: " << er.error << " " << con.errnum() << endl;
  77.     return -1;
  78.   } catch (BadConversion er) {
  79.     // we still need to cache bad conversions incase something goes 
  80.     // wrong when the data is converted into stock
  81.     cerr << "Error: Tried to convert "" << er.data << "" to a ""
  82.  << er.type_name << ""." << endl;
  83.     return -1;
  84.   }
  85. }