发布ADO方式开发的程序,出现“提供者未找到”提示(100分)

  • 主题发起人 主题发起人 tobby
  • 开始时间 开始时间
T

tobby

Unregistered / Unconfirmed
GUEST, unregistred user!
DELPHI连ORACLE 8i的程序,ADO连接的提供者使用“ORACLE PROVIDER FOR OLE DB”
发布时,总报错说“提供者未找到,程序未被正确按装”
我估计是由于少一些系统文件但,不知道是哪些。请高手回答。
 
ADO 通过 OLE DB Provider 同数据库服务器连接的,你需要在客户
机器上安装 ORACLE 8i 的客户端吗?
 
我已经知道答案了
 
安装oracle客户端,
只有30多M
 
有關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的開發者有所幫助,但請各位轉貼時,
Q : 不安装oracle客户端而访问oracle服务器的方法
主要解答者: jjqiao710102 提交人: jiezhi
感谢:
审核者: hrb_qiuyb 论坛对应贴子: 查看
A :

我用VC做了一个数据库应用,后台数据库用的是ORACLE 8i .本机运行当然正常。但我要在网络上用,如果其他机器没装ORACLE 8i的客户端,有什么办法。
说明:我的程序是有ORACLE提供的OCI(Oracle Call Interface)来调用数据库的,而没用ODBC、DAO、ADO。
注:1、我已知OCI用到了oracle 8i安装目录下BIN下共27个DLL文件。
2、我已知OCI要用注册表中local_machine/software/oracle/下的内容
3、请高手解释这些注册表文件的内容(这是我从一个已装了oracle的机子上复制下来的,我想把它用到其它未装oracle客户端的机子上,如何改)。如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE]
"inst_loc"="C://Program Files//Oracle//Inventory"
"ORACLE_HOME"="D://oracle//ora81"
"ORACLE_HOME_NAME"="OraHome81"
"API"="D://oracle//ora81//dbs"
"ORACLE_GROUP_NAME"="Oracle - OraHome81"
"NLS_LANG"="NA"
"OLEDB"="D://oracle//ora81//oledb//mesg"
"VOBHOME2.0"="D://oracle//ora81"
"OO4O"="D://oracle//ora81//oo4o//mesg"

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES]
"HOME_COUNTER"="1"
"DEFAULT_HOME"="OraHome81"
"LAST_HOME"="0"

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES/ID0]
"NAME"="OraHome81"
"PATH"="D://oracle//ora81"
"NLS_LANG"="NA"

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0]
"ID"="0"
"ORACLE_GROUP_NAME"="Oracle - OraHome81"
"ORACLE_HOME_NAME"="OraHome81"
"ORACLE_HOME"="D://oracle//ora81"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
"ORACLE_SID"="QIAODB"
"ORACLE_HOME_KEY"="Software//ORACLE//HOME0"
"SQLPATH"="D://oracle//ora81//dbs"
"ORACLE_BASE"="D://oracle"
"MSHELP_TOOLS"="D://oracle//ora81//MSHELP"
"RDBMS_CONTROL"="D://oracle//ora81//DATABASE"
"RDBMS_ARCHIVE"="D://oracle//ora81//DATABASE//ARCHIVE"
"ORA_QIAODB_AUTOSTART"=hex(2):54,00,52,00,55,00,45,00,00,00
"ORA_QIAODB_PFILE"=hex(2):44,00,3a,00,5c,00,6f,00,72,00,61,00,63,00,6c,00,65,/
00,5c,00,61,00,64,00,6d,00,69,00,6e,00,5c,00,51,00,49,00,41,00,4f,00,44,00,/
42,00,5c,00,70,00,66,00,69,00,6c,00,65,00,5c,00,69,00,6e,00,69,00,74,00,2e,/
00,6f,00,72,00,61,00,00,00
"ORA_QIAODB_SHUTDOWN"=hex(2):54,00,52,00,55,00,45,00,00,00
"ORA_QIAODB_SHUTDOWNTYPE"=hex(2):69,00,00,00
"ORA_QIAODB_SHUTDOWN_TIMEOUT"=hex(2):33,00,30,00,00,00


4、另外,客户机上要不要设置oracle监听程序,如何设置。

如有哪位大高手能给个答案,太感动了。如需要加分,我绝对同意。


---------------------------------------------------------------

1.在安装了Oracle客户端程序后,在Oracle安装目录下有如下目录和文件是连接Oracle数据库服务器所必需的:(最好保持目录层次关系结构)
2.Oracle/BIN目录以及下面的27个DLL文件,并且保证应用程序可以找到该目录,即该目录为系统目录或者PATH目录。
3.Oracle/OCOMMON/NLS/ADMIN目录以及其下所有文件
4.Oracle/OCOMMON/NLS/MESG目录以及其下所有文件
5.Oracle/NETWORK/ADMIN/tnsnames.ora
6.Oracle/ORACORE/Mesg以及其下所有MSB文件

7.导入注册表到客户机:
REGEDIT4
[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE]
"inst_loc"="C://Program Files//Oracle//Inventory"
"ORACLE_HOME"="D://oracle//ora81"
"ORACLE_HOME_NAME"="OraHome81"
"API"="D://oracle//ora81//dbs"
"ORACLE_GROUP_NAME"="Oracle - OraHome81"
"NLS_LANG"="NA"
"OLEDB"="D://oracle//ora81//oledb//mesg"
"VOBHOME2.0"="D://oracle//ora81"
"OO4O"="D://oracle//ora81//oo4o//mesg"

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES]
"HOME_COUNTER"="1"
"DEFAULT_HOME"="OraHome81"
"LAST_HOME"="0"

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES/ID0]
"NAME"="OraHome81"
"PATH"="D://oracle//ora81"
"NLS_LANG"="NA"

[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0]
"ID"="0"
"ORACLE_GROUP_NAME"="Oracle - OraHome81"
"ORACLE_HOME_NAME"="OraHome81"
"ORACLE_HOME"="D://oracle//ora81"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
"ORACLE_SID"="QIAODB"
"ORACLE_HOME_KEY"="Software//ORACLE//HOME0"
"SQLPATH"="D://oracle//ora81//dbs"
"ORACLE_BASE"="D://oracle"
"MSHELP_TOOLS"="D://oracle//ora81//MSHELP"
"RDBMS_CONTROL"="D://oracle//ora81//DATABASE"
"RDBMS_ARCHIVE"="D://oracle//ora81//DATABASE//ARCHIVE"




 
换一个问题呗,收是收不回去了
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部