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

模拟服务器

开发平台:

C/C++

  1. #include <iostream>
  2. #include <vector>
  3. #include <sqlplus.hh>
  4. #include <custom.hh>
  5. #include "util.hh"
  6. // util.hh/cc contains the print_stock_table function
  7. sql_create_5(stock, 1, 5, string, item, int, num, 
  8.      double, weight, double, price, Date, sdate)
  9. int main() {
  10.   try { // its in one big try block
  11.     Connection con(use_exceptions);
  12.     con.connect("mysql_cpp_data");
  13.     Query query = con.query();
  14.     query << "select * from stock where item = "Hotdogs' Buns" ";
  15.     
  16.     Result res = query.store();
  17.     if (res.empty()) 
  18.       throw BadQuery("Hotdogs' Buns not found in table, run reset-db");
  19.     // here we are testing if the query was successful, if not throw a bad query
  20.     stock row = res[0];
  21.     // because there should only be one row in this query we don't
  22.     // need to use a vector.  Just store the first row directly in
  23.     // "row".  We can do this because one of the constructors for
  24.     // stock takes a Row as an parameter.
  25.     stock row2 = row;
  26.     // Now we need to create a copy so that the replace query knows
  27.     // what the original values are.
  28.     row.item = "Hotdog Buns"; // now change item
  29.     query.update(row2, row);
  30.     // form the query to replace the row
  31.     // the table name is the name of the struct by default
  32.     cout << "Query : " << query.preview() << endl;
  33.     // show the query about to be executed
  34.     query.execute();
  35.     // execute a query that does not return a result set
  36.     print_stock_table(query);
  37.     // now print the new table;
  38.     
  39.     return 0;
  40.     
  41.   } catch (BadQuery er) {
  42.     cerr << "Error: " << er.error << endl;
  43.     return -1;
  44.   } catch (BadConversion er) { 
  45.     cerr << "Error: Tried to convert "" << er.data << "" to a "" 
  46.  << er.type_name << ""." << endl;
  47.     return -1;
  48.   }
  49. }