簡單的說:
1、找(可在安裝oracle用戶端的機子)oci.dll 和 oraociei10.dll tnsnames.ora這三個檔案,放在你的應用程式目錄下即可
2、還得有個 tnsnames.ora 檔案可用記事本開啟 編輯
3、如果提示 不能載入 oci.DLL 檔案,說明你的電腦系統老,沒有 msvcr71.DLL 檔案,同樣放在你的程式目錄下 或放在系統檔案目錄下
4、如果看到表的資料中 中文是亂碼(中文顯示'???'),你就在你的系統的註冊表中 註冊一個值 即可
詳情 請參看下面:
說明:oracle10g免裝用戶端發布和以前版本的發布可能很不一樣,因為沒有鑽研過oracle9i以前版本的發布,所以這裡不敢妄評。但oracle10g的發布確實非常簡單。本次資料庫遷移時我諮詢了Oracle公司的技術人員,但發現他們的技術人員其實對發布方面的問題也不是非常精通,只是告知10g的動態庫串連將面向所有低版本,而且發布十分簡單。但具體到詳細配置也是不知所云。好了廢話不再多說,下面就是詳細的發布方法。
一、 需要發布時打包的檔案:
1、dll檔案;
(1)oci.dll
(2)oraociei10.dll
以上兩個dll檔案擷取方法是安裝完oracle用戶端instantclient後在安裝目錄下直接擷取,其中oraociei10非常大約88M,沒辦法就是這麼大。(這個檔案應該在資料庫伺服器的oracle安裝目錄下也能找到,不知道是不是bin目錄,自己搜一下。)
(3)libjcc.dll
(4)pbdwe90.dll
(5)Pbo9090.dll
(6)pbvm90.dll
(7)msvcr71.dll(win2000作業系統需要此dll,winxp版本不需要。擷取辦法請到winxp作業系統的system32目錄下尋找)
以上幾個dll是PB發布的時所需的最少dll,可根據項目需要自己增加dll,其中數字9是pb的版本,可根據自己的開發版本自行調整。其中需要注意的是msvcr71.dll這個檔案,win2000作業系統發布需要這個檔案,winxp則不需要。但建議一併打上。這樣就不用區分版本。
2、其它相關檔案
(1)tnsnames.ora
該檔案記錄了用戶端串連資料庫伺服器的地址和資料庫名;
說明:以上所有檔案在發布時可拷貝到安裝目錄下,當然你可以拷貝到作業系統的目錄下。有的朋友可能比較困惑如何修改tnsnames.ora檔案中伺服器的地址和資料庫名,因為這個檔案不支援ini讀寫格式。這個你自己要想辦法了,我是在pb指令碼中利用filewrite函數將所有字串硬寫進去的。
3、註冊表
(1) 增設[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE]目錄;
(2) 在該目錄下建立一個字串值:
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
這個是為了顯示簡體中文的設定。如果不設定中文將會顯示亂碼;
如果需要顯示繁體則:
NLS_LANG=TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950
說明:其實註冊表不做任何設定已經能串連上資料庫了,註冊表的設定就是語言設定。
3、運行測試
按照上面的配置方法在win2000專業版和winxp專業版進行了測試均通過。就10g而言,比以前版本的發布少了很多dll,可能這也是為什麼oraociei10.dll檔案如此之大的原因,也許oracle把以前的所有相關dll都融合到這個檔案裡了。這裡只是做了簡單的測試,不知道會不會有新的問題,歡迎大家做進一步的測試看看是否會遺漏一些dll造成某些功能可能會出現問題。
補充:下面是pb直連10g的串連代碼
SQLCA.DBMS = "O90 Oracle9i (9.0.1) "//這個dbms用的是9版本的但10也可用所以沒換。
SQLCA.LogPass = '****** '
SQLCA.ServerName = "yoursername "//這個是tnsnames.ora檔案中的連接字串名
wf_oracleini(ls_ServerName,ls_dbname)//這個函數是設定oracle的tnsnames.ora中的伺服器IP地址和資料庫名,大家自己寫吧
SQLCA.LogId = 'youruname '
SQLCA.AutoCommit = False//oracle好像預設必須是明確交易處理,這個參數設不設無所謂。
SQLCA.DBParm = ' '
connect using sqlca;//或你自己的資料庫連接對象名