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

MySQL数据库

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <iostream>
  3. #include <sqlplus.hh>
  4. int main (int argc, char *argv[]) {
  5.   Connection connection(use_exceptions);
  6.   try { // the entire main block is one big try block;
  7.     if (argc == 1) connection.connect("");
  8.     else if (argc == 2) connection.connect("",argv[1]);
  9.     else if (argc == 3) connection.connect("",argv[1],argv[2]);
  10.     else if (argc <= 4) connection.connect("",argv[1],argv[2],argv[3]);
  11.     // create a new object and connect based on any (if any) arguments
  12.     // passed to main();
  13.     
  14.     try {
  15.       connection.select_db("mysql_cpp_data");
  16.     } catch (BadQuery er) {
  17.       // if it couldn't connect to the database assume that it doesn't exist
  18.       // and try created it.  If that does not work exit with an error.
  19.       connection.create_db("mysql_cpp_data");
  20.       connection.select_db("mysql_cpp_data");
  21.     }
  22.     
  23.     Query query = connection.query();  // create a new query object
  24.     
  25.     try { // ignore any errors here
  26.           // I hope to make this simpler soon
  27.       query.execute("drop table stock");
  28.     } catch (BadQuery er) {}
  29.     
  30.     query << "create table stock  (item char(20) not null, num bigint,"
  31.   << "weight double, price double, sdate date)";
  32.     query.execute(RESET_QUERY);
  33.     // send the query to create the table and execute it.  The
  34.     // RESET_QUERY tells the query object to reset it self after
  35.     // execution
  36.     
  37.     query << "insert into %5:table values (%0q, %1q, %2, %3, %4q)";
  38.     query.parse();
  39.     // set up the template query I will use to insert the data.  The
  40.     // parse method call is important as it is what lets the query
  41.     // know that this is a template and not a literal string
  42.     
  43.     query.def["table"] = "stock";
  44.     // This is setting the parameter named table to stock.
  45.     
  46.     query.execute ("Hamburger Buns", 56, 1.25, 1.1, "1998-04-26");
  47.     query.execute ("Hotdogs' Buns"   ,65, 1.1 , 1.1, "1998-04-23");
  48.     query.execute ("Dinner Roles"  , 75,  .95, .97, "1998-05-25");
  49.     query.execute ("White Bread"   , 87, 1.5, 1.75, "1998-09-04");
  50.     // The last parameter "table" is not specified here.  Thus
  51.     // the default value for "table" is used which is "stock".
  52.   } catch (BadQuery er) { // handle any errors that may come up
  53.     cerr << "Error: " << er.error << endl;
  54.     return -1;
  55.   }
  56. }