不装Oracle客户端怎么运行编译好的exe(转贴)

lmby 2003-11-07 10:58:33
--摘自《PB8.0进阶篇》
在安装了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”
=====================================================================
...全文
44 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcn 2003-12-06
  • 打赏
  • 举报
回复
中山宝元鞋厂,哈哈,港台集团
liujiaqiang 2003-11-08
  • 打赏
  • 举报
回复
楼主,你在宝元吧。。。。。
鸡翅多 2003-11-08
  • 打赏
  • 举报
回复
十分感谢!
lmby 2003-11-07
  • 打赏
  • 举报
回复
csdn.net/develop/read_article.asp?id=8435
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的開發者有所幫助,但請各位轉貼時,注明出處,尊重作者勞動,以上內容如有不正確的地方也請來信指出,多多交流.
lmby 2003-11-07
  • 打赏
  • 举报
回复
不安装Oracle客户连接Oracle 8的方法

liulee(流方-琢磨Notes中...)
Oracle的客户端不安装让pb连上,我记得以前有帖子的,你可以搜索一下。


请将以下文件拷贝到运行文件所在目录

一、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,参照格式,程序中生成一个也不麻烦。

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧