php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /opt/lampp/lib/instantclient/sdk/demo/ |
files >> //opt/lampp/lib/instantclient/sdk/demo/occidml.cpp |
/* Copyright (c) 2001, 2008, Oracle. All rights reserved. */ /* NAME occidml.cpp - Basic DML Operations demo DESCRIPTION To exhibit the insertion, selection, updating and deletion of a row using OCCI interface MODIFIED (MM/DD/YY) mvasudev 05/22/08 - Add try/catch blocks sudsrini 10/22/06 - Username/Password lower case lburgess 04/14/06 - lowercase passwords sudsrini 07/23/04 - Copyright Info idcqe 03/05/01 - Creation */ #include <iostream> #include <occi.h> using namespace oracle::occi; using namespace std; class occidml { private: Environment *env; Connection *conn; Statement *stmt; public: occidml (string user, string passwd, string db) { env = Environment::createEnvironment (Environment::DEFAULT); conn = env->createConnection (user, passwd, db); } ~occidml () { env->terminateConnection (conn); Environment::terminateEnvironment (env); } /** * Insertion of a row with dynamic binding, PreparedStatement functionality. */ void insertBind (int c1, string c2) { string sqlStmt = "INSERT INTO author_tab VALUES (:x, :y)"; stmt=conn->createStatement (sqlStmt); try{ stmt->setInt (1, c1); stmt->setString (2, c2); stmt->executeUpdate (); cout << "insert - Success" << endl; }catch(SQLException ex) { cout<<"Exception thrown for insertBind"<<endl; cout<<"Error number: "<< ex.getErrorCode() << endl; cout<<ex.getMessage() << endl; } conn->terminateStatement (stmt); } /** * Inserting a row into the table. */ void insertRow () { string sqlStmt = "INSERT INTO author_tab VALUES (111, 'ASHOK')"; stmt = conn->createStatement (sqlStmt); try{ stmt->executeUpdate (); cout << "insert - Success" << endl; }catch(SQLException ex) { cout<<"Exception thrown for insertRow"<<endl; cout<<"Error number: "<< ex.getErrorCode() << endl; cout<<ex.getMessage() << endl; } conn->terminateStatement (stmt); } /** * updating a row */ void updateRow (int c1, string c2) { string sqlStmt = "UPDATE author_tab SET author_name = :x WHERE author_id = :y"; stmt = conn->createStatement (sqlStmt); try{ stmt->setString (1, c2); stmt->setInt (2, c1); stmt->executeUpdate (); cout << "update - Success" << endl; }catch(SQLException ex) { cout<<"Exception thrown for updateRow"<<endl; cout<<"Error number: "<< ex.getErrorCode() << endl; cout<<ex.getMessage() << endl; } conn->terminateStatement (stmt); } /** * deletion of a row */ void deleteRow (int c1, string c2) { string sqlStmt = "DELETE FROM author_tab WHERE author_id= :x AND author_name = :y"; stmt = conn->createStatement (sqlStmt); try{ stmt->setInt (1, c1); stmt->setString (2, c2); stmt->executeUpdate (); cout << "delete - Success" << endl; }catch(SQLException ex) { cout<<"Exception thrown for deleteRow"<<endl; cout<<"Error number: "<< ex.getErrorCode() << endl; cout<<ex.getMessage() << endl; } conn->terminateStatement (stmt); } /** * displaying all the rows in the table */ void displayAllRows () { string sqlStmt = "SELECT author_id, author_name FROM author_tab \ order by author_id"; stmt = conn->createStatement (sqlStmt); ResultSet *rset = stmt->executeQuery (); try{ while (rset->next ()) { cout << "author_id: " << rset->getInt (1) << " author_name: " << rset->getString (2) << endl; } }catch(SQLException ex) { cout<<"Exception thrown for displayAllRows"<<endl; cout<<"Error number: "<< ex.getErrorCode() << endl; cout<<ex.getMessage() << endl; } stmt->closeResultSet (rset); conn->terminateStatement (stmt); } /** * Inserting a row into elements table. * Demonstrating the usage of BFloat and BDouble datatypes */ void insertElement (string elm_name, float mvol=0.0, double awt=0.0) { BFloat mol_vol; BDouble at_wt; if (!(mvol)) mol_vol.isNull = TRUE; else mol_vol.value = mvol; if (!(awt)) at_wt.isNull = TRUE; else at_wt.value = awt; string sqlStmt = "INSERT INTO elements VALUES (:v1, :v2, :v3)"; stmt = conn->createStatement (sqlStmt); try{ stmt->setString(1, elm_name); stmt->setBFloat(2, mol_vol); stmt->setBDouble(3, at_wt); stmt->executeUpdate (); cout << "insertElement - Success" << endl; }catch(SQLException ex) { cout<<"Exception thrown for insertElement"<<endl; cout<<"Error number: "<< ex.getErrorCode() << endl; cout<<ex.getMessage() << endl; } conn->terminateStatement (stmt); } /** * displaying rows from element table */ void displayElements () { string sqlStmt = "SELECT element_name, molar_volume, atomic_weight FROM elements \ order by element_name"; stmt = conn->createStatement (sqlStmt); ResultSet *rset = stmt->executeQuery (); try{ cout.precision(7); while (rset->next ()) { string elem_name = rset->getString(1); BFloat mol_vol = rset->getBFloat(2); BDouble at_wt = rset->getBDouble(3); cout << "Element Name: " << elem_name << endl; if ( mol_vol.isNull ) cout << "Molar Volume is NULL" << endl; else cout << "Molar Volume: " << mol_vol.value << " cm3 mol-1" << endl; if ( at_wt.isNull ) cout << "Atomic Weight is NULL" << endl; else cout << "Atomic Weight: " << at_wt.value << " g/mole" << endl; } }catch(SQLException ex) { cout<<"Exception thrown for displayElements"<<endl; cout<<"Error number: "<< ex.getErrorCode() << endl; cout<<ex.getMessage() << endl; } stmt->closeResultSet (rset); conn->terminateStatement (stmt); } }; // end of class occidml int main (void) { string user = "hr"; string passwd = "hr"; string db = ""; try{ cout << "occidml - Exhibiting simple insert, delete & update operations" << endl; occidml *demo = new occidml (user, passwd, db); cout << "Displaying all records before any operation" << endl; demo->displayAllRows (); cout << "Inserting a record into the table author_tab " << endl; demo->insertRow (); cout << "Displaying the records after insert " << endl; demo->displayAllRows (); cout << "Inserting a records into the table author_tab using dynamic bind" << endl; demo->insertBind (222, "ANAND"); cout << "Displaying the records after insert using dynamic bind" << endl; demo->displayAllRows (); cout << "deleting a row with author_id as 222 from author_tab table" << endl; demo->deleteRow (222, "ANAND"); cout << "updating a row with author_id as 444 from author_tab table" << endl; demo->updateRow (444, "ADAM"); cout << "displaying all rows after all the operations" << endl; demo->displayAllRows (); cout << "inserting radio active element properties" << endl; demo->insertElement ("Uranium", 12.572, 238.0289 ); demo->insertElement ("Plutonium", 12.12, 244.0642 ); demo->insertElement ("Curium", 18.17, 247.0703 ); demo->insertElement ("Thorium"); demo->insertElement ("Radium", 41.337, 226.0254); cout << "displaying all radio active element properties" << endl; demo->displayElements (); delete (demo); } catch (SQLException ex){ cout << ex.getMessage() << endl; } cout << "occidml - done" << endl; }y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`