Client端不安裝Oracle而用PowerBuilder直連的方法

client|oracle

 

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的開發者有所幫助,但請各位轉貼時,

   注明出處,尊重作者勞動,以上內容如有不正確的地方也請來信指出,多多交流.

时间: 2024-11-29 16:19:03

Client端不安裝Oracle而用PowerBuilder直連的方法的相关文章

windows-[求助] 自建遠端關機程式,Client端遇到了困難

问题描述 [求助] 自建遠端關機程式,Client端遇到了困難 不好意思想請教一個技術問題,我這裡有自建一台Amazon的EC2主機,我想透過網頁去遠端關機控制我所有的電腦,家裡有3台,桌機.2台Windows筆電,公司有兩台,一台桌機.一台筆電,系統都是Windows. 我打算建一個網頁,然後每台電腦都安裝一個小程式Client(用內建的shutdown作一個執行檔),以網頁上的帳號密碼登入然後下指令關機,可是我在Client遇到了一些問題,我該怎麼去確認server發出了指令關機!?? 公司

Asp.Net小技巧之在client端调用server端事件

asp.net|client|server|技巧 Asp.Net小技巧之在client端调用server端事件: string strCMD = Page.GetPostBackClientHyperlink(ControlName,Parameter); OtherControlName.Attributes.Add("ClientEventName", strCMD); 小注:   在上述两行代码中,利用Page.GetPostBackClientHyperlink方法来取得对服务

如何在redhat 9,redhat ELAS 3/2.1,redat FC1 上安裝oracle 10g

oracle 本文將指導大家安裝以下內容: - Oracle 10g (10.1.0) on Red Hat Enterprise Linux Advanced Server 3 (RHELAS3)- Oracle 10g (10.1.0) on Red Hat Enterprise Linux Advanced Server 2.1 (RHELAS2.1)- Oracle 10g (10.1.0) on Red Hat 9 (RH9)- Oracle 10g (10.1.0) on Red H

【APACHE MINA2.0开发之二】自定义实现SERVER/CLIENT端的编解码工厂(自定义编码与解码器)!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/apache-mina/839.html 在上一篇博文中已经简单介绍过"过滤器"的概念,那么在Mina 中的协议编解码器通过过滤器 ProtocolCodecFilter 构造,这个过滤器的构造方法需 要一个 ProtocolCodecFactory,这从前面注册 TextLineCodecFactory 的代码就可以看出来. Pr

【APACHE MINA2.0开发之一】搭建APACHE MINA框架并实现SERVER与CLIENT端的简单消息传递!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/apache-mina/831.html Hibernate系列学习阶段到此结束了,那么紧接着进入Apache Mina的开发学习,很多童鞋在微薄和QQ中疑问Himi为什么突然脱离游戏开发了,嘿嘿,其实可能更多的童鞋已经看出来了,Himi在偏向服务器Server端开发了,Hibernate.MySQL等都是为了Server端Mina开发而做的

qt-QT编程client端怎么和server端在不同电脑上连接

问题描述 QT编程client端怎么和server端在不同电脑上连接 写了一个简单的QT程序进行client端与server端的连接,运行在同一台电脑上client端输入localhost可以连接,但是运行在不同电脑上client端输入服务器IP无法连接,求大神指教 解决方案 查看具体错误信息,先看服务端的端口是否正确侦听.其次是否有防火墙等拦截 解决方案二: 应该是防火墙的问题,如果两个电脑都在局域网同一个网段并且各自网络没问题的话.

文件传输-关于Socket通信问题 ,Sever和Client端如何相互判断对方中断以及终断

问题描述 关于Socket通信问题 ,Sever和Client端如何相互判断对方中断以及终断 一个手机做为Server端,其他多个手机做为Client端,用Socket建立连接,然后进行文件传输,怎么判断Server和Client端的中断以及终断? 解决方案 百度查查Soket心跳检测怎样做.http://blog.sina.com.cn/s/blog_a459dcf5010153m5.html 解决方案二: 初学者,没怎么看懂,谢谢!! 解决方案三: 数据小的消息相互发送与应答(降低流量),定

C#Client端与Service交互问题

问题描述 C#Client端与Service交互问题 没有数据库前提下,加入从Form里有tetBOX 通过提交按钮,把数据弄到service处理,添加进Dategridview里显示出来.(已绑定了类),问题是,数据如何提交到service? 解决方案 service怎么实现的,怎么定义的,提供什么接口,这个天知道,你得问提供service的人. 解决方案二: .net service?web service吧,那将web service发布到iis,然后客户端添加web引用,输入地址,引用进

client 端的调用 服务器端的webservice问题

问题描述 client端调用服务端的webservice(集于springMVC模式开发的)我写的webservice是用jaxws写的,现在有一个问题?是client调用服务端的可以成功,但是服务器的对象都是通过依赖注入方式新建哦,调用的时候,类的对象为null,没有办法实例?例如:service调dao层,dao层的对象,没有办法实例,对象为空请给位大神帮帮忙,急急急啊 解决方案