使用OCCI連接Linux下Oracle數據庫
OCCI(Oracle C++ Call Interface):C++程序與Oracle數據庫實現交互的應用程序接口,它以動態連接庫的形式提供給用戶。OCCI對OCI實行了對象級的封裝,其底層仍是OCI
OCCI連接Linux下的Oracle數據庫:
1 安裝Linux下的oracle客戶端
2 下載對應的oracle-instantclient-basic-10.2.0.4-1.i386.zip將其拷貝至Linux的Oracle賬戶并解壓至instantclient_10_2目錄
實現OCCI的六大步驟:
1 創建環境變量Environment
2 創建連接對象Connection
3 創建SQL語句的執行對象Statement
4 執行SQL語句(execute()函數,executeUpdate()函數,executeQuery()函數)
5 處理結果集ResultSet(查詢結果)
6 關閉連接
在Linux的Oracle數據庫下創建一個表用于操作
create table user_info ( user_id int not null primary key, user_name varchar2(100) ); //AddOcci.cc #include <iostream> #include <string> #include <occi.h> #pragma comment(lib,"oci.lib") #pragma comment(lib,"ociw32.lib") #pragma comment(lib,"oraocci10.lib") using namespace std; using namespace oracle::occi; /******************************* *向數據庫中添加一條記錄 *******************************/ int main() { //創建環境變量 //Environment Environment *env = Environment::createEnvironment(Environment::OBJECT); //username是oracle的用戶名 //userpass是oracle的密碼 //connstr是oracle的連接字符串 string username = "hahaya"; string userpass = "hahaya"; string connstr = "192.168.0.6:1521/orcl"; //創建連接 //connection Connection *conn = env->createConnection(username, userpass, connstr); if(conn == NULL) { cout << "access oracle failed..." << endl; return 0; } //創建一個SQL語句的執行對象 //statement Statement *st = conn->createStatement(); st->setSQL("insert into user_info values(1, 'hahaya')"); st->executeUpdate(); //關閉連接 env->terminateConnection(conn); Environment::terminateEnvironment(env); return 0; } |
執行AddOcci程序之前:
執行AddOcci程序之后:
//ListOcci.cc #include <iostream> #include <string> #include <occi.h> #pragma comment(lib,"oci.lib") #pragma comment(lib,"ociw32.lib") #pragma comment(lib,"oraocci10.lib") using namespace std; using namespace oracle::occi; /******************************* *查詢表中數據 *******************************/ int main() { Environment *env = Environment::createEnvironment(Environment::OBJECT); string username = "hahaya"; string userpass = "hahaya"; string connstr = "192.168.0.6:1521/orcl"; Connection *conn = env->createConnection(username, userpass, connstr); Statement *st = conn->createStatement(); st->setSQL("select * from user_info"); ResultSet *rs = st->executeQuery(); while(rs->next()) { cout << "user id:" << rs->getInt(1) << "user name:" << rs->getString(2) << endl;; } st->closeResultSet(rs); env->terminateConnection(conn); Environment::terminateEnvironment(env); return 0; } |
執行ListOcci之前:
執行DelOcci結果:
posted on 2014-04-10 10:58 順其自然EVO 閱讀(352) 評論(0) 編輯 收藏 所屬分類: 數據庫