testlibpq6.cc
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*
  2.  * testlibpq4.cc
  3.  *  Test the C++ version of LIBPQ, the POSTGRES frontend library.
  4.  * tests the copy in features
  5.  *
  6.  */
  7. #include <iostream.h>
  8. #include <libpq++.H>
  9. #include <stdlib.h>
  10. main()
  11. {
  12.   // Begin, by connecting to the backend using hardwired constants
  13.   // and a test database created by the user prior to the invokation
  14.   // of this test program.  Connect using transaction interface.
  15.   char* dbName = "dbname=template1";
  16.   PgTransaction data(dbName);
  17.   // check to see that the backend connection was successfully made
  18.   if ( data.ConnectionBad() ) {
  19.     cerr << "Connection to database '" << dbName << "' failed." << endl
  20.          << data.ErrorMessage();
  21.     exit(1);
  22.   }
  23.   else cout << "Connected to database '" << dbName << "'..." << endl;
  24.   // Create a new table
  25.   if ( !data.ExecCommandOk("CREATE TABLE foo (a int4, b char16, d float8)") ) {
  26.       cerr << "CREATE TABLE foo command failed" << endl;
  27.       exit(1);
  28.   }
  29.   else cout << "CREATEd TABLE foo successfully.." <<  endl;
  30.   // Initiate Copy command
  31.   if ( data.ExecCommandOk("COPY foo FROM STDIN") ) {
  32.       cerr << "COPY foo FROM STDIN" << endl;
  33.       exit(1);      
  34.   }
  35.   else cout << "COPY foo FROM STDIN was successful.." <<  endl;
  36.   // Put some test data into the table
  37.   data.PutLine("3thello worldt4.5n");
  38.   cout << "Line: "3thello worldt4.5" copied..." << endl;
  39.   data.PutLine("4tgoodbye wordt7.11n");
  40.   cout << "Line: "4tgoodbye wordt7.11" copied..." << endl;
  41.   data.PutLine("\.n");
  42.   cout << "Line: "\." copied..." << endl;
  43.   if ( !data.EndCopy() )
  44.        cout << "Ended COPY succesfully..." << endl;
  45.   else cerr << "End Copy failed..." << endl;
  46.   
  47.   // Print the data that was inserted into the table
  48.   if ( data.ExecTuplesOk("SELECT * FROM foo") )
  49.        data.PrintTuples();
  50.   else cerr << "SELECT * FROM foo failed..." << endl;
  51.   
  52.   // Drop the test table
  53.   data.Exec("DROP TABLE foo");
  54. }