⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 occiobj.cpp

📁 此源代码是通过occi连接oracle 9i的简单例子
💻 CPP
字号:
/**  * occiobj.cpp - To exhibit the insertion, selection, updating and deletion  *                of a row containing object as one of the column. * * Description   *   Create a program which has insert, select, update & delete as operations *   of a object.  Perform all these operations using  interface. */#include <iostream>#include "occiobjm.h"using namespace oracle::occi;using namespace std;class occiobj{  private:  Environment *env;  Connection *con;  Statement *stmt;  public:  occiobj (string user, string passwd, string db)  {    env = Environment::createEnvironment (Environment::OBJECT);    occiobjm (env);    con = env->createConnection (user, passwd, db);  }  ~occiobj ()  {    env->terminateConnection (con);    Environment::terminateEnvironment (env);  }  /**   * Insertion of a row    */  void insertRow (int c1, int a1, string a2)  {    cout << "Inserting record - Publisher id :" << c1 <<       ", Publisher address :" << a1 << ", " << a2 <<endl;     string sqlStmt = "INSERT INTO publisher_tab VALUES (:x, :y)";    try{    stmt = con->createStatement (sqlStmt);    stmt->setInt (1, c1);    address *o = new address ();    o->setStreet_no (Number (a1));    o->setCity (a2);    stmt->setObject (2, o);    stmt->executeUpdate ();    cout << "Insert - Success" << endl;    delete (o);    }catch(SQLException ex)    {     cout<<"Exception thrown for insertRow"<<endl;     cout<<"Error number: "<<  ex.getErrorCode() << endl;     cout<<ex.getMessage() << endl;    }    con->terminateStatement (stmt);  }  /**   * updating a row   */  void updateRow (int c1, int a1, string a2)  {    cout << "Upadating record with publisher id :"<< c1 << endl;    string sqlStmt =       "UPDATE publisher_tab SET publisher_add= :x WHERE publisher_id = :y";    try{    stmt = con->createStatement (sqlStmt);    address *o = new address ();    o->setStreet_no (Number (a1));    o->setCity (a2);    stmt->setObject (1, o);    stmt->setInt (2, c1);    stmt->executeUpdate ();    cout << "Update - Success" << endl;    delete (o);    }catch(SQLException ex)    {     cout<<"Exception thrown for updateRow"<<endl;     cout<<"Error number: "<<  ex.getErrorCode() << endl;     cout<<ex.getMessage() << endl;    }    con->terminateStatement (stmt);  }  /**   * deletion of a row   */  void deleteRow (int c1, int a1, string a2)  {    cout << "Deletion of record where publisher id :" << c1 <<endl;     string sqlStmt =     "DELETE FROM publisher_tab WHERE publisher_id= :x AND publisher_add = :y";    try{    stmt = con->createStatement (sqlStmt);    stmt->setInt (1, c1);    address *o = new address ();    o->setStreet_no (Number (a1));    o->setCity (a2);    stmt->setObject (2, o);    stmt->executeUpdate ();    cout << "Delete - Success" << endl;    delete (o);    }catch(SQLException ex)    {     cout<<"Exception thrown for deleteRow"<<endl;     cout<<"Error number: "<<  ex.getErrorCode() << endl;     cout<<ex.getMessage() << endl;    }    con->terminateStatement (stmt);  }  /**   * displaying all the rows in the table   */  void displayAllRows ()  {    string sqlStmt = "SELECT publisher_id, publisher_add FROM publisher_tab";    try{    stmt = con->createStatement (sqlStmt);    ResultSet *rset = stmt->executeQuery ();       while (rset->next ())    {      cout << "publisher id: " << rset->getInt (1)            << " publisher address: address (" ;      address *o =  (address *)rset->getObject (2);      cout << (int)o->getStreet_no () << ", " << o->getCity () << ")" << endl;    }    stmt->closeResultSet (rset);    }catch(SQLException ex)    {     cout<<"Exception thrown for displayAllRows"<<endl;     cout<<"Error number: "<<  ex.getErrorCode() << endl;     cout<<ex.getMessage() << endl;    }    con->terminateStatement (stmt);  }};//end of class occiobj;int main (void){  string user = "SCOTT";  string passwd = "TIGER";  string db = "";  try  {    cout << "occiobj - Exhibiting simple insert, delete & update operations"      " on Oracle objects" << endl;    occiobj *demo = new occiobj (user, passwd, db);    cout << "displaying all rows before operations" << endl;    demo->displayAllRows ();      demo->insertRow (12, 122, "MIKE");      demo->deleteRow (11, 121, "ANNA");      demo->updateRow (23, 123, "KNUTH");      cout << "displaying all rows after all operations" << endl;    demo->displayAllRows ();      delete (demo);    cout << "occiobj - done" << endl;  }catch (SQLException ea)  {    cerr << "Error running the demo: " << ea.getMessage () << endl;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -