轉:http://blog.csdn.net/clever101/article/details/1792075
上周六無事,抽空學習了一下Pro *C/C++,使用的參考書是《精通Oracle 10gPro*C/C++編程》。個人感覺Pro *C/C++語法不難,就是環境設置有點麻煩。編程就是這樣,開頭是一個坎,編譯環境設置不好,看不到輸出結果,就難以獲得那種成就感。下面我以一個簡單例子來說明Pro *C/C++的編譯環境的設置。這次開發環境是:Win XP sp2,VC++6.0, OCI: version 9.2, Oracle DataBase 10g Enterprise Edition Release 10.1.0.2.0。 書上說Oracle為Windows平台提供了Pro *C/C++圖形界面工具,但是我裝的這個Oracle 10g並沒有帶這個圖形界面工具。呵呵,還是用控制台那個Proc吧。這次進行Pro *C/C++大致分為四個步驟: 1. 指定可執行文件路徑、頭文件路徑和庫文件路徑 指定可執行文件路徑實際上是在Visual C++指定運行Oracle 10g的Pro*C/C++預編譯器proc.exe。這個proc.exe在服務器端和客戶端都有,我想是一樣的。這裡是使用的是服務器端的。具體做法是:在VC 6.0的TOOl->Option菜單項的Directory選項卡裡,在Show directoryes for選項裡選擇Executable files,將proc.exe的路徑加進去,如下圖所示: 至於加頭文件和庫文件,我想從事過二次開發的人都比較清楚,我就不一一細說了。具體要加哪些頭文件呢,主要是兩個,一個是sqlca.h所在的目錄,一般是precomp/public,另一個是OCI的頭文件,如下圖所示: 至於庫文件,只需加OCI的庫文件,如下圖所示: 以後可能還要根據需要添加相應的頭文件和庫文件,這裡暫且不表。 2. 使用配置文件 使用配置文件實際上是為了設置預編譯選項。因為剛入門,這次我們使用系統配置文件,但是系統配置文件並不能完全滿足我們的需要,如系統配置文件並不包含解析內嵌SQL語法,因此我們要對系統配置文件編輯一下。系統配置文件一般是%precomp/admin/pcscfg.cfg。這裡要根據個人的Oracle安裝目錄來找,我的是:D:/Oracle/Server/precomp/admin/pcscfg.cfg。使用記事本(其它文本編輯工具也行)打開這個文件,在裡面添加如下內容: parse=full include="C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE" include="D:/Oracle/Server/precomp/public" include="D:/Oracle/Server/OCI/include" 其中parse=full表示解析源文件的所有語法,包括C語法和內嵌SQL語法,include 則指定了頭文件所在的路徑,包括Visual C++頭文件路徑、ProC/C++頭文件路徑和OCI頭文件路徑。 3. 建立工程文件,正式開始編程 激動人心的編程時刻終於到來了。首先使用記事本新建一個文本文件,輸入以下代碼: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <sqlca.h> int main() { char username[10],password[10],server[10]; printf("輸入用戶名:/n"); gets(username); printf("輸入口令:/n"); gets(password); printf("輸入網絡服務名:/n"); gets(server); EXEC SQL CONNECT:username IDENTIFIED BY:password USING:server; if(sqlca.sqlcode==0) printf("連接成功!/n"); else printf("%.*s/n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc); getch(); return 0; } 保存為demo.pc(這裡注意後綴名為.pc) 在VC上建一個空的控制台工程demo,在FileView頁面中選中Source File,將demo.pc加進工程(),如下圖所示: 然後使用同樣方法,在文件名裡輸入demo.c, 因為此時該文件並不存在,所以會出現下面提示對話框: 單擊是,這樣就將.c文件增加到工程文件。注意,demo.c會在預編譯之後生成。 然後增加SQLLIB庫,具體是:在FileView頁面中選中Source Fil,選擇Add Files To Folder,將oraSQL10.LIB文件添加到工程,該文件一般在Oracle安裝文件目錄下的precomp/lib子目錄下。如下圖: 建立預編譯命令,具體如下: 1.右鍵選中demo.pc,如下圖: 2.在右鍵菜單中選擇setting,在Command編輯框中輸入:proc F:/MyProSrc/ProC/Demo/demo.pc,意思是調用proc.exe,對文件F:/MyProSrc/ProC/Demo/demo.pc進行預編譯,在Outputs編輯框中輸入:F:/MyProSrc/ProC/Demo/demo.c,意思為預編譯的輸出文件為:F:/MyProSrc/ProC/Demo/demo.c,如下圖 按確定後保存設置。 在完成上述設置之後,即可建立並生成可執行文件。按Ctrl+F5快捷鍵,Visual C++將調用proc工具進行預編譯,將pc源程序轉為c代碼,然後可以編譯c代碼生成目標代碼,最後鏈接目標代碼和sqllib庫文件,最終生成可執行文件。程序運行效果圖如下: