Client端不安裝Oracle而用PowerBuilder直連的方法

** 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\Sybase\share ** ** 必不可少 ** ** **

** Pbdwe60.dll **

|

** C:\program files\Sybase\share ** ** 必不可少 ** ** **

** Pbo7360.dll **

|

** C:\program files\Sybase\share ** ** 必不可少 ** ** **

** 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\SOFTWARE ** ** 下的內容 ** ** **

** ** ** 在 ** ** SOFTWARE ** ** 下新增一個子鍵: ** ** ORACLE **

** ** ** 選擇 ** ** ORACLE ** ** ,在對應右窗格內新增兩個串值: ** ** **

** NLSRTL32 ** ** 其值爲: ** ** C:\TEST **

** NLS_LANG ** ** 其值爲: ** ** TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5 **


** ** ** 其中, ** ** NLSRTL32 ** ** 是爲 ** ** *.NLB ** ** 文件指明搜索路徑, ** ** NLS_LANG ** ** 則是指明 ** ** ORACLE ** ** 的符集,我 ** ** **

** 測試時用的是繁體中文. ** ** **


** ** ** 其後我又找了兩台未裝 ** ** ORACLE ** ** 的電腦測試,屢試不爽. ** ** **


** 說明:若是 ** ** PB7 ** ** 或 ** ** ORACLE8 ** ** ,上述文件請對照更改,有一些 ** ** dll ** ** 文件是位於 ** ** C:\windows\system ** ** 下, ** ** **

** 如: ** ** netbios.dll ** ** 等是 ** ** Windows ** ** 自有的,所以未列入,實際作業時請酌情考慮. ** ** **


** 借助工具: ** ** Sax Setup 6.0 **

** Sax Setup ** ** 是一個相當簡單易用的安裝打包工具,它有一個最大的特點就是能偵測出應用程序 ** ** **

** 運行時所需要的 ** ** dll ** ** 文件,但不能偵測出其他類型的文件,且要註冊版本才行. ** ** **

** Sax Setup 6.0 ** ** 的註冊碼: ** ** 3160-3194666-18 **


** 後記:以上過程,我花了近 ** ** 4 ** ** 天的時間,希望能為 ** ** pb+oracle ** ** 的開發者有所幫助,但請各位轉貼時, ** ** **

** 注明出處,尊重作者勞動,以上內容如有不正確的地方也請來信指出,多多交流. ** ** **

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus