VC6下開發OCCI程序的環境配置

           解決VC6不兼容ORACLE10G的OCCI調用

1、 環境

WindowXP+Oracle10g+VC6。

2、 設定Include files及Library files

打開VC6開發環境窗口,點擊菜單“Tools->Options”,如下圖示:

6

 

 

圖(1)

彈出選項窗口,點擊“Directories”選項卡,分別加入如圖(2),圖(3)示目錄:

5

 

圖(2)

這一步實際上是設置Oci/Occi的include路徑。

4

 

圖(3)

這一步實際上Oci/Occi的Library路徑。以上這兩步是最基本的路徑設置,也就相當於環境變量中的path設置這一項。是不是必須配置你自己試試看。

3、 工程設置

打開一個工程,按如下圖點擊:

 3

圖(4)

選擇C/C++選項卡,按如下圖示加入WIN32COMMON,_DLL,_MT如下圖示:

 2

圖(5)

選擇分類下拉選項中Code Generation項,再選擇Use run-time library下拉選項中Multithreaded DLL(推薦選項)或Debug Multithreaded DLL。否則程序運行時會報一些Link錯誤。

選擇“Link”選項卡,完成如下圖所示配置:

1

圖(6)

在“對象/庫模塊”中加入oci.lib oraocci10.lib ociw32.lib這三個庫,否則在executeQuery()後檢索取得getString()時會報錯。

4、 配置完成

完成配置後編寫一個測試代碼如下:

       string username="suncs";

       string password="scs";

       string constr="192.168.0.225:1521/orcl";

       try{

             Environment *env=Environment::createEnvironment(Environment::OBJECT);

             

             Connection *conn = env->createConnection(username,password,constr);

              cout <<"hello world..."<<endl;

              Statement *stmt = conn->createStatement("insert into s values(22,'55555')");

              stmt->executeUpdate();

 

              conn->terminateStatement(stmt);

              env->terminateConnection(conn);

              Environment::terminateEnvironment(env);

       }catch(SQLException excp){

              cout <<"exception:" <<excp.what()<<endl;

       }

       注:1、編譯通過但是運行時總是彈出一個錯誤,說我的字符串長度超過了255

              2、原因是oracle10.2.0以後的客戶端版本與vc6裏面的string不兼容

3、下載對應的instantclient-basic-win32-10.1.0.5-20060419解壓,將裏面的oci.dllVC6裏面的oraocci10.dll兩個庫文件覆蓋掉D:/oracle/product/10.2.0/client_1/BINoracle客戶端安裝目錄BIN目錄下)的oci.dlloraocci10.dll

5、 說明

經歷以上配置之後,基本上就可以寫一個完整的OCCI程序運行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章