client端不安裝oracle的方法
廣東中山 謝殿宏
2001/04/03
前言:
曾在網上見到許多人問client端不安裝oracle而使pb程序連上後臺oracle資料庫的方法,
本人從事pb+oracle開發已有些時日,每次都得安裝oracle的client端程式,而我面對的
client端則有幾百個之多,工作量可以想象何其大,所以就在這方面動了下腦筋,經過反復
試驗,終於搞定.
開發環境: 前臺:pb6.5+win95+oracle 7.3.4 client 後臺:redhat linux 6.2+oracle 8.1.6
有關oracle資料庫別名的配置:(%oracle_homes% 表示oracle的安裝目錄)
當在sql neteasy configuration中配置oracle資料庫別名時,與sql server 7和odbc不同的是
oracle並沒有把資料庫別名資訊寫入註冊表中,而是寫入了一個文本文件之中:
%oracle_homes%\network\admin\tnsnames.ora,(此文件與同目錄下的sqlnet.ora一起使用),當運行pb程
序的時候,實際上在讀取這兩文件中的數據庫配置信息.
應用程序運行所需要的文件:
檔案名稱
文件來源
pbvm60.dll
c:\program files ybase hare 必不可少
pbdwe60.dll
c:\program files ybase hare 必不可少
pbo7360.dll
c:\program files ybase hare 必不可少
ociw32.dll
%oracle_homes%\bin 必不可少
core35o.dll
%oracle_homes%\bin 必不可少
nlsrtl32.dll
%oracle_homes%\bin 必不可少
core35.dll
%oracle_homes%\bin 必不可少
ora73.dll
%oracle_homes%\bin 必不可少
ncrnt.dll
%oracle_homes%\bin 必不可少
nnfnnt.dll
%oracle_homes%\bin 必不可少
nnfdnt.dll
%oracle_homes%\bin 必不可少
ntnt.dll
%oracle_homes%\bin 必不可少
otrace73.dll
%oracle_homes%\bin 必不可少
nlnt.dll
%oracle_homes%\bin 必不可少
nasnsnt.dll
%oracle_homes%\bin 必不可少
nsnt.dll
%oracle_homes%\bin 必不可少
sqltnsnt.dll
%oracle_homes%\bin 必不可少
nttnt.dll
%oracle_homes%\bin 必不可少
ntnnt.dll
%oracle_homes%\bin 必不可少
tnsnames.ora
%oracle_homes%\network\admin 必不可少
sqlnet.ora
%oracle_homes%\network\admin 必不可少
lx*.nlb
%oracle_homes%\nlsrtl32\data 共有414個文件,其中,lx3*.nlb(63個文件)不需要,
其餘351個文件是必不可少的,全部文件大小不超過2m,
測試環境:
我找了一台新電腦,裝上win98,建立一個新目錄:c:\test,將上述文件copy到此目錄下,
再修改註冊表:\\hkey_local_machine oftware下的內容
在software下新增一個子鍵:oracle
選擇oracle,在對應右窗格內新增兩個串值:
nlsrtl32 其值爲:c:\test
nls_lang 其值爲:traditional chinese_taiwan.zht16big5
其中,nlsrtl32是爲*.nlb文件指明搜索路徑,nls_lang則是指明oracle的符集,我
測試時用的是繁體中文.
其後我又找了兩台未裝oracle的電腦測試,屢試不爽.
說明:若是pb7或oracle8,上述文件請對照更改,有一些dll文件是位於c:\windows ystem下,
如:netbios.dll等是windows自有的,所以未列入,實際作業時請酌情考慮.
借助工具:sax setup 6.0
sax setup是一個相當簡單易用的安裝打包工具,它有一個最大的特點就是能偵測出應用程序
運行時所需要的dll文件,但不能偵測出其他類型的文件,且要註冊版本才行.
sax setup 6.0 的註冊碼:3160-3194666-18
後記:以上過程,我花了近4天的時間,希望能為pb+oracle的開發者有所幫助,但請各位轉貼時,
注明出處,尊重作者勞動,以上內容如有不正確的地方也請來信指出,多多交流.