程序连接Oracle数据库出现未找到提供程序.该程序可能未正确安装错误提示

好不容易使用plsql可以成功连上数据库了,应用程序连接数据库却出现了问题

其实解决这个问题也简单:

1.  查看oracle安装目录下的BIN目录,E:\app\Administrator\product\11.1.0\db_1\BIN
发现有OraOLEDB11.dll这个文件
解决方法:
注册OraOLEDB11.dll
注册方法:
reg
svr32  OraOLEDB11.dll

 

发现问题依旧

Provider=OraOLEDB.Oracle.1 未找到提供程序.该程序可能未正确安装.

2.

在命令提示符下,键入   cd   %systemroot%:\Program   Files\Common   Files\System\Ole。      
在命令提示符下,键入   regsvr32   sqloledb.dll,
regsvr32 oledb32.dll

这下应用程序连接数据库就成功。

我怀疑这个问题的根本原因还是在于sqloledb.dll, oledb32.dll 这两个dll没有注册导致的。

3. 对于64位数据库需要配置32位客户端的PATH环境变量:

System.Data.OracleClient所指向的是PATH环境变量下的oci.dll。因此,我们只要让程序能够找到64位的oci.dll就可以了。方法如下:

1. 下载instantclient-basic-win-x86-64-11.1.0.7.0.zip,并解压,如C:\instantclient-basic-win-x86-64-11.1\instantclient_11_1(这个部分也是必须的,根据实际情况的不同进行修改)。

2. 在系统的环境变量PATH中加入以上路径。

之后重启操作系统(这个是必须的,我弄了一下午没有搞好,结果重启一下马上就好了),程序会依照PATH路径寻找oci.dll,如果遇到32位的oci.dll会自动略过,找到64位的oci.dll就能连接上数据库了。

4. 

   IIS服务器报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。

出错的原因:

1.虽然报的是需要安装客户端8.1.7及以上版本,实际是.net账户没有访问Oracle\bin文件夹的权限

2.在 Windows Server 2003/2008 的 NTFS系统中提供了高级的访问安全性,FAT32系统也许没有这个问题。

解决办法如下:

我用Windows Server 2008 为例 Windows Server 2003 是一样的

1.打开安装有Oracle客户端的电脑,在安装目录 C:\oracle\ora90\BIN 文件夹上右键-》安全选项卡-》点击  编辑---》添加。

2.点击“查找范围”,在下面显示的账户中选择“NTWORK SERVICE”  ----将“读取和执行”的权限都赋给他(如果不行就把完全控制给他,这样不安全),子文件夹继承此权限,确定。

3.打开“服务器管理器”-》配置-》 本地用户和组-》组-》adminisgrators-》将Network Service 添加进来

4.重新启动IIS,在“运行”中输入“IISRESET”。

还有一种情况就是:

IIS设置为64位模式下运行,改为32位模式这个问题就解决了

应用程序池 -> 高级设置 ->启用32位应用程序  = TRUE

 

转载于:https://www.cnblogs.com/liflying/p/4362302.html

你可能感兴趣的:(数据库,c/c++)