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 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的开发者有所帮助,但请各位转贴时,
注明出处,尊重作者劳动,以上内容如有不正确的地方也请来信指出,多多交流.