PB如何免装oracle客户端发布软件(oracle10g版本)

本文介绍使用PowerBuilder(PB)连接Oracle 10g数据库的方法,无需安装完整的Oracle客户端。主要内容包括所需DLL文件、tnsnames.ora配置、注册表设置及测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老问题:PB如何免装oracle客户端发布软件(oracle10g版本)
www.firnow.com    时间 : 2010-06-28  作者:网络   编辑:Mr.阿布 点击:  12 [ 评论 ]


老问题:PB如何免装oracle客户端发布软件(oracle10g版本)
说明:oracle10g免装客户端发布和以前版本的发布可能很不一样,因为没有钻研过oracle9i以前版本的发布,所以这里不敢妄评。但oracle10g的发布确实非常简单。本次数据库迁移时我咨询了Oracle公司的技术人员,但发现他们的技术人员其实对发布方面的问题也不是非常精通,只是告知10g的动态库连接将面向所有低版本,而且发布十分简单。但具体到详细配置也是不知所云。好了废话不再多说,下面就是详细的发布方法。
                  一、需要发布时打包的文件:
                  1、dll文件;
                  (1)oci.dll
                  (2)oraociei10.dll
                  以上两个dll文件获取方法是安装完oracle客户端instantclient后在安装目录下直接获取,其中oraociei10非常大约88M,没办法就是这么大。(这个文件应该在数据库服务器的oracle安装目录下也能找到,不知道是不是bin目录,自己搜一下。)
                  (3)libjcc.dll
                  (4)pbdwe90.dll
                  (5)Pbo9090.dll
                  (6)pbvm90.dll
                  (7)msvcr71.dll(win2000操作系统需要此dll,winxp版本不需要。获取办法请到winxp操作系统的system32目录下寻找)
                  以上几个dll是PB发布的时所需的最少dll,可根据项目需要自己增加dll,其中数字9是pb的版本,可根据自己的开发版本自行调整。其中需要注意的是msvcr71.dll这个文件,win2000操作系统发布需要这个文件,winxp则不需要。但建议一并打上。这样就不用区分版本。
                  2、其它相关文件
                  (1)tnsnames.ora
                  该文件记录了客户端连接数据库服务器的地址和数据库名;
                  说明:以上所有文件在发布时可拷贝到安装目录下,当然你可以拷贝到操作系统的目录下。有的朋友可能比较困惑如何修改tnsnames.ora文件中服务器的地址和数据库名,因为这个文件不支持ini读写格式。这个你自己要想办法了,我是在pb脚本中利用filewrite函数将所有字符串硬写进去的。
                  3、注册表
                  (1)增设[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE]目录;
                  (2)在该目录下建立一个字符串值:
                  NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
                  这个是为了显示简体中文的设置。如果不设置中文将会显示乱码;
                  如果需要显示繁体则:
                  NLS_LANG=TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950
                  说明:其实注册表不做任何设置已经能连接上数据库了,注册表的设置就是语言设置。
                  3、运行测试
                  按照上面的配置方法在win2000专业版和winxp专业版进行了测试均通过。就10g而言,比以前版本的发布少了很多dll,可能这也是为什么oraociei10.dll文件如此之大的原因,也许oracle把以前的所有相关dll都融合到这个文件里了。这里只是做了简单的测试,不知道会不会有新的问题,欢迎大家做进一步的测试看看是否会遗漏一些dll造成某些功能可能会出现问题。
                  补充:下面是pb直连10g的连接代码
                  SQLCA.DBMS = "O90 Oracle9i (9.0.1)"//这个dbms用的是9版本的但10也可用所以没换。
                  SQLCA.LogPass = '******'
                  SQLCA.ServerName = "yoursername"//这个是tnsnames.ora文件中的连接字符串名
                  wf_oracleini(ls_ServerName,ls_dbname)//这个函数是设置oracle的tnsnames.ora中的服务器IP地址和数据库名,大家自己写吧
                  SQLCA.LogId = 'youruname'
                  SQLCA.AutoCommit = False//oracle好像默认必须是显式事务处理,这个参数设不设无所谓。
                  SQLCA.DBParm = ''
                  connect using sqlca;//或你自己的数据库连接对象名
 
            Top
            回复人:AFIC(A Fool In China) ( ) 信誉:1002007-2-8 9:00:33得分:0

            ?
                  如果他机子上已经装了其他版本的oracle数据库和客户端
                  你能保证仍旧没问题吗,免客户端安装应当缓行。

            Top
            回复人:redbridge(雪燃) ( ) 信誉:952007-2-8 9:36:12得分:0

            ?
                  楼上的你注意了,我没有往系统目录里增加dll,注册表也只是增加一个NLS_LANG(这个几乎应该没什么冲突吧)。基本算是绿色软件,怎么会有冲突。
                  再有,你说“免客户端安装应当缓行”不知是什么意思?难道因为孕妇难产就不允许她生孩子了???

            Top
            回复人:jdsnhan(柳荫凉) ( ) 信誉:1152007-2-8 10:38:32得分:100

            ?
                  方法1 copy文件方法
                  具体如下:
                  (1).先在某机器上安装好客户端(最好安装在c盘);
                  (2).复制此客户端oracle目录下的所有文件作为独立的oracle安装文件;
                  (3).搜索注册表,找到 HKey_Local_machine/software/oracle,把此项目及分支全部导出。
                  (4).打包好你的pb程序,并独立打包好oracle客户端和注册表导出文件。
                  (5).到干净的客户端,解开两个包,导入注册表文件,然后加入路径支持:
                  path=%path%;"c:/Ora817/bin"
                  此方法测

试通过,并实施好多项目中.
                  方法2,前两天刚测试成功的,使用jdbc
                  SQLCA.DBMS = "JDBC"
                  SQLCA.LogPass = "pwd"
                  SQLCA.LogId = "user"
                  SQLCA.AutoCommit = False
                  SQLCA.DBParm =
                  "Driver='oracle.jdbc.driver.OracleDriver',URL='jdbc:oracle:thin:@10.0.0.14:1521:orclsc'";
                  connect using sqlca;
                  把class111.zip放到C:/Program Files/Sybase/Shared/PowerBuilder/下面,
                  并他其填加到classpath路径里面,还有,确保rt.jar也在classpath中.
                  可参见http://www.itlove.net/Article/2/630/2005/20051122111300.html
                  帖子见http://community.youkuaiyun.com/Expert/topic/5335/5335680.xml?temp=.6083643
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/7_databases/oracle/oraclejs/20100628/217867.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值