在安装了Oracle客户端程序后,在Oracle安装目录下有如下目录和文件是连接Oracle数据库服务器所必需的:(最好保持目录层次关系结构)
Oracle\BIN目录以及下面的所有DLL文件,并且保证应用程序可以找到该目录,即该目录为系统目录或者PATH目录。
Oracle\OCOMMON\NLS\ADMIN目录以及其下所有文件
Oracle\OCOMMON\NLS\MESG目录以及其下所有文件
Oracle\NETWORK\tnsnames.ora
Oracle\ORACORE\Mesg以及其下所有MSB文件 PowerBuilder程序需要:PBO8480.DLL、PBVM80.DLL、PBDWE80.DLL、libjcc.dll 添加如下注册表:
=====================================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"ORACLE_HOME"="E:\\oracle" //安装时确定的Oracle客户端安装主目录
"ORACLE_HOME_NAME"="iSuites" //Oracle主目录名称
"NLS_LANG"="NA"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES]
"HOME_COUNTER"="1"//主目录个数
"DEFAULT_HOME"="Oracle815"//缺省的主目录名称
"LAST_HOME"="0"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"NAME"="Oracle815"//第一个主目录名称
"PATH"="E:\\oracle" //Oracle安装目录
"NLS_LANG"="NA"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"ORACLE_HOME_NAME"="Oracle815"//主目录名称
"ORACLE_HOME"="E:\\oracle"//Oracle安装目录
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"//语言
"ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0"//主目录信息存放位置
"ORACLE_BASE"="E:\\oracle" //Oracle安装目录
"TNS_ADMIN"="E:\\oracle\\NETWORK\\tnsnames.ora"//tnsnames.ora存放的位置,如果将该文件放在“E:\oracle\NETWORK\”目录下,则“TNS_ADMIN”赋值为“E:\\oracle\\NETWORK\\tnsnames.ora”
Oracle\BIN目录以及下面的所有DLL文件,并且保证应用程序可以找到该目录,即该目录为系统目录或者PATH目录。
Oracle\OCOMMON\NLS\ADMIN目录以及其下所有文件
Oracle\OCOMMON\NLS\MESG目录以及其下所有文件
Oracle\NETWORK\tnsnames.ora
Oracle\ORACORE\Mesg以及其下所有MSB文件 PowerBuilder程序需要:PBO8480.DLL、PBVM80.DLL、PBDWE80.DLL、libjcc.dll 添加如下注册表:
=====================================================================
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"ORACLE_HOME"="E:\\oracle" //安装时确定的Oracle客户端安装主目录
"ORACLE_HOME_NAME"="iSuites" //Oracle主目录名称
"NLS_LANG"="NA"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES]
"HOME_COUNTER"="1"//主目录个数
"DEFAULT_HOME"="Oracle815"//缺省的主目录名称
"LAST_HOME"="0"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"NAME"="Oracle815"//第一个主目录名称
"PATH"="E:\\oracle" //Oracle安装目录
"NLS_LANG"="NA"[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"ORACLE_HOME_NAME"="Oracle815"//主目录名称
"ORACLE_HOME"="E:\\oracle"//Oracle安装目录
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"//语言
"ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0"//主目录信息存放位置
"ORACLE_BASE"="E:\\oracle" //Oracle安装目录
"TNS_ADMIN"="E:\\oracle\\NETWORK\\tnsnames.ora"//tnsnames.ora存放的位置,如果将该文件放在“E:\oracle\NETWORK\”目录下,则“TNS_ADMIN”赋值为“E:\\oracle\\NETWORK\\tnsnames.ora”
一、ODBC动态库 :
ctl3d32.dll msvcrt40.dll odbc16gt.dll odbc32.dll odbc32gt.dll odbccp32.dll odbccr32.dll odbcint.dll
二、建立EXTRA子目录,将MSVCRT.DLL文件拷贝到该子目录下
EXTRA\MSVCRT.DLL
三、ORACLE动态库及配置文件
Tnsnames.ora CORE35O.DLL NASNSNT.DLL NAUNTSNT.DLL NCRNT.DLL Nlnt.dll NLSRTL32.DLL Nnfdnt.dll NNFNNT.DLL NSNT.DLL NTNT.DLL NTTNT.DLL CIW32.DLL Ora73.dll OTRACE73.DLL Sqlnet.ora Sqltnsnt.dll CORE35.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\bin"
这样处理,应该没有问题,因为我就是这样快速处理了几十个机器。
若不想搞注册表,你可以在程序中自己写注册表,构成Oracle客户端必要的注册表支持,至于路径,手工添加应该不难。
至于Oracle客户端那些文件不需要,这个不好说,你可以把那些bin目录下的所有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%\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自有的,所以未列入,實際作業時請酌情考慮.
都找不到了,这是怎么回事啊。我装的9i,是不是没有这些dll啊。
为此我研究了很久,现在终于做到了可以把ORACLE客户端和应用程序一起打包,又自己用程序来配置NET EASY,刚好前两天有两个小弟问我如何把客户端打包和用程序配置NET EASY的问题,我今天就在这里说一下。
由于时间问题,今天就只能讲一下客户端打包的问题,另一个问题我会在下一篇给大家讲一下。
1、打包要知道的问题:
A、要打包哪些文件。
B、如何修改注册表。
C、如何设置环境变量。
D、打包使用哪些工具。
2、打包要使用的文件:
我们先找一个装有ORACLE的机器,把以下的文件打包。为了保证ORACLE能正常访问,我们需要保持原目录结构不变。
A、$ORACLE_HOME\BIN下边所有DLL,IMP.EXE,EXP.EXE,SQLPLUS.EXE,SQLPLUSW.EXE。($ORACLE_HOME指的是ORACLE的主目录,比如D:\ORACLE\ORA8I)。
B、$ORACLE_HOME\network目录下的三个目录:Admin、mesg、tnsapi,把它们全部打包。
C、$ORACLE_HOME\ocommon\nls目录。
D、$ORACLE_HOME\oracore\mesg目录。
E、$ORACLE_HOME\sqlplus下的两个目录:admin、mesg。
3、如何修改注册表:
为不麻烦,我们可以把这个装有ORACLE的机器的注册表里边ORACLE信息照搬过来。全部照抄。
4、如何设置环境变量:
设置环境变量,我们要在PATH前边加上$ORACLE_HOME\BIN;
5、使用哪些打包工具:
我个人比较喜欢的工具是WiseInstaller,它的功能很强大,能导入整个文件目录(我感觉这一点比Install shilled要好)、导入注册表、也可以设置环境变量,以及设置NT服务等等(我好象是给它做广告似的)。
我们现在就可以使用它来做我们的客户端了。
第一步,先把我说的这些文件目录全部导入到我们的安装工程中去。
第二步,找到设置注册表选项,导入注册表中HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下边所有的注册表值。
第三步,找到环境变量设置选项,在它的PATH那里加上$ORACLE_HOME\BIN。这里的$ORACLE_HOME用<Installdir>来代替。
做完这一切,编译,发布,OK。
6、如何用手工来修改NET EASY。
现在假设我们已经做完了这个安装包,并且把它安装到了我们的电脑上边,那么,在开始菜单上是没有ORACLE这个选项的,如何设置ORACLE NET EASY呢?
我们现在暂时可以这样做:
打开我们的ORACLE客户端的安装目录,找到NETWORK\ADMIN子目录下边的tnsnames.ora这个文件,直接对它进行编辑就行了。
比如,我们现在想配置一个叫做NTSERVER的服务名,我们就可以这样写:
NTSERVER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 机器名)(PORT = 端口号))
)
(CONNECT_DATA =
(SERVICE_NAME = 全局数据库名)
)
)
然后,直接把它加到tnsnames.ora这个文件的后边就行了。
如果NTSERVER这个服务名已经存在的话,我们可以直接修改它的机器名、
端口号和全局数据库名就可以了。