分類: database
2007-09-19 22:52
7812人閱讀收藏
舉報 朱金燦
上週六無事,抽空學習了一下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
#include
#include
#include
#include
int main()
儲存為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庫檔案,最終生成可執行檔案。程式執行效果圖如下:
Pro C C 學習筆記(一)
朱金燦 上週六無事,抽空學習了一下pro c c 使用的參考書是 精通oracle 10gpro c c 程式設計 個人感覺pro c c 語法不難,就是環境設定有點麻煩。程式設計就是這樣,開頭是乙個坎,編譯環境設定不好,看不到輸出結果,就難以獲得那種成就感。下面我以乙個簡單例子來說明pro c c...
proc C 的完整小例子
簡單的proc 程式 完整的編譯執行過程 include include include define username name 使用者名稱 define passwd pwd 密碼 define dbname dbname 資料庫名 exec sql include sqlca void sql...
proc c 程式設計(二) 指示變數
指示變數 與宿主變數相關聯,用於監督和管理相關聯的宿主變數。每乙個宿主變數可以定義乙個指示變數。作用 1.向資料庫表列輸入null值。2.檢查資料庫所取值是否為null值,或者發生截斷問題。指示變數值含義 輸入宿主變數 1 oracle把null值輸入資料庫表列,不考慮與該指示變數相關的宿主變數。0...