摘录自《PB8.0进阶篇》安装Oracle客户机程序后,连接到Oracle数据库服务器所需的目录和文件位于Oracle安装目录中。 (最好保留目录层次结构) Oracle/幽默的电话目录和以下所有DLL文件: 允许APP应用程序找到这个目录。 这意味着确保此目录是系统目录或PATH目录。 Oracle/OCOMMON/NLS/ADMIN目录及其下的所有文件Oracle/OCOMMON/NLS/MESG目录及其下的所有文件Oracle/network/tnsnames . 在Mesg及其下的所有MSB文件PowerBuilder程序中,PBO8480.DLL、PBVM80.DLL、PBDWE80.DLL和libjcc.dll将添加以下注册表:=========================================================================================安装过程中确定的Oracle客户机安装主目录' Oracle _ home _ name '=' I suites '/Oracle主目录名称' nls _ lang '=' na ' [ HKEY _ Lome _ name ] 主目录数' DEFAULT_HOME'='Oracle815'//默认主目录名称' last_home'='0'[Hkey_local_] /第一个主目录Oracle安装目录' nls _ lang '=' na ' [ HKEY _ local _ machine/software/Oracle ]主目录名称' Oracle _ home '=' Oracle安装目录' nls _ lang '=' simplified Chinese _ China.zh s16 gbk ' /语言主目录信息的存储位置' Oracle _ base '=' e : Oracle安装目录' tns _ admin '=' e 3360//Oracle//network//tnsnames将此文件写入“E:/oracle/NETWORK/”目录tnsnames.ora "===========================tnsnames.ora "=============================================p32.dll odbccr32.dll odbccr32.dll odbccint.dll 2,创建exxccr将MSVCRT.DLL文件写入此子目录下的EXTRA/MSVCRT.DLL, ORACLE动态库和配置文件tnsnames.oracore 35 o.dllnasnsnt.dllnauntsnt.dllncrnt.dllnlsrtl 32.dllnfdnt.dllnnfnfnt ce73.dll sqlnet.orasqltnsnt.dll core 35.dll四、PB动态库pbvm70.dll pbdwe70
.dll Pbo7370.dll PBO8470.DLL pbodb70.dll libjcc.dll 具体步骤。 1.先在某机器上安装好客户端(最好安装在c盘); 2.复制此客户端oracle目录下的所有文件作为独立的oracle安装文件; 3.搜索注册表,找到 HKey_Local_machine/software/oracle,把此项目及分支全部导出。 4.打包好你的pb程序,并独立打包好oracle客户端和注册表导出文件。 5.到干净的客户端,解开两个包,导入注册表文件,然后加入路径支持: path=%path%;"c:/Ora817/atgdfg" 这样处理,应该没有问题,因为我就是这样快速处理了几十个机器。 若不想搞注册表,你可以在程序中自己写注册表,构成Oracle客户端必要的注册表支持,至于路径,手工添加应该不难。 至于Oracle客户端那些文件不需要,这个不好说,你可以把那些atgdfg目录下的所有exe删除,Oracle Document删除(7x兆) 至于定义Oracle服务,找到 Ora817/net80/admin/TnsName.ora,参照格式,程序中生成一个也不麻烦。 -------------------------------------------------------------------------------- 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%/atgdfg 必不可少 Core35o.dll %Oracle_homes%/atgdfg 必不可少 Nlsrtl32.dll %Oracle_homes%/atgdfg 必不可少 Core35.dll %Oracle_homes%/atgdfg 必不可少 Ora73.dll %Oracle_homes%/atgdfg 必不可少 Ncrnt.dll %Oracle_homes%/atgdfg 必不可少 Nnfnnt.dll %Oracle_homes%/atgdfg 必不可少 Nnfdnt.dll %Oracle_homes%/atgdfg 必不可少 Ntnt.dll %Oracle_homes%/atgdfg 必不可少 Otrace73.dll %Oracle_homes%/atgdfg 必不可少 Nlnt.dll %Oracle_homes%/atgdfg 必不可少 Nasnsnt.dll %Oracle_homes%/atgdfg 必不可少 Nsnt.dll %Oracle_homes%/atgdfg 必不可少 Sqltnsnt.dll %Oracle_homes%/atgdfg 必不可少 Nttnt.dll %Oracle_homes%/atgdfg 必不可少 Ntnnt.dll %Oracle_homes%/atgdfg 必不可少 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的開發者有所幫助,但請各位轉貼時,注明出處,尊重作者勞動,以上內容如有不正確的地方也請來信指出,多多交流.