不安裝oracle客戶端部署PB應用

pb8發表於2010-01-12

--摘自《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的開發者有所幫助,但請各位轉貼時,註明出處,尊重作者勞動,以上內容如有不正確的地方也請來信指出,多多交流.       
 

相關文章