不安装oracle客户端部署PB应用

来源:互联网 发布:lv老花是pvc 知乎 编辑:程序博客网 时间:2024/05/17 04:34

--摘自《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”      
  =====================================================================      
  请将以下文件拷贝到运行文件所在目录          
     
  一、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自有的,所以未列入,實際作業時請酌情考慮.      
     
  借助工具:Sax     Setup     6.0      
                Sax     Setup是一個相當簡單易用的安裝打包工具,它有一個最大的特點就是能偵測出應用程序運行時所需要的dll文件,但不能偵測出其他類型的文件,且要註冊版本才行.      
                Sax     Setup     6.0     的註冊碼:3160-3194666-18      
     
  後記:以上過程,我花了近4天的時間,希望能為pb+oracle的開發者有所幫助,但請各位轉貼時,注明出處,尊重作者勞動,以上內容如有不正確的地方也請來信指出,多多交流.       
 

原创粉丝点击