!!!急ASP+ORACLE

zghmminwx 2005-12-27 10:47:36
各位高手:
我的系统是xp sp2,IIS5.0,Oracle9i的客户端。现在因为要做个web应用,要连接远端的Oracle数据库。一开始用ODBC,定义了一个系统DSN但报错。于是就用了OLEDB:(在Oracle NET Manager中设置了一个服务名为smware54的服务)
<%
Dim Conn

'Connect to Oracle
Set Conn = Server.CreateObject("ADODB.Connection")

'Conn.Open "DSN=SMWARE54; Uid=SMWARE; Pwd=SMWARE;"

connStr="Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=SMWARE;Password=SMWARE;Data Source=smware54"
Conn.Open connStr
%>
但是调用页面还是报错:
ADODB.Connection (0x800A0E7A)
未找到提供程序。该程序可能未正确安装

请教各位大侠,这是怎么回事?或者有没有其他肯定能连上Oracle的方法?在线急等,万分感激!!!

我也曾用DSN连接:
Conn.Open "DSN=SMWARE54; Uid=SMWARE; Pwd=SMWARE;"DSN已经测过,连接成功的
但报错:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
由于系统错误 5 (Oracle in OraHome92),指定驱动程序无法加载。
不知是何原因?望指教!

后来,我又Provider=MSDAORA.1,也已经注册了sqloledb.dll,环境变量应该也没有问题,oracle的客户端也安装的,但这时它报错:
Microsoft OLE DB Provider for Oracle (0x80004005)
未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。 在安装这些组件之前,将无法使用此提供程序。
代码:
<%
Dim Conn

'Connect to Oracle
Set Conn = Server.CreateObject("ADODB.Connection")

'Conn.Open "DSN=SMWARE54; Uid=SMWARE; Pwd=SMWARE;"

'connStr="Provider=OraOLEDB.Oracle;Persist Security Info=True;User ID=SMWARE;Password=SMWARE;Data Source=smware54"

connStr="Provider=MSDAORA.1;Persist Security Info=True;User ID=SMWARE;Password=SMWARE;Data Source=smware54"

Conn.Open connStr

%>
有高手知道问题在哪里吗?

请高手为我指明一条ASP能正确连接Oracle的路,谢谢了!!!
...全文
185 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zghmminwx 2005-12-27
  • 打赏
  • 举报
回复
谢谢lunge()!
我的oracle是9i,远端的数据库也是Oracle9i,我先试试你的方案2
lunge 2005-12-27
  • 打赏
  • 举报
回复
访问WEB出错:

采用:MSDAORA.1 出现如下的错误

系统错误信息:数据库错误:(未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 7.3.3 版 (或更高) 客户软件安装的一部分。

采用: OraOLEDB.Oracle.1 出现下面的错误。

系统错误信息:数据库错误:(未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。
为什么?

这个问题是微软的bug,有些机器可以的,有些机器上不行的。

问题的出处:

http://support.microsoft.com/default.aspx?scid=kb;en-us;320609

http://support.microsoft.com/default.aspx?scid=kb;EN-US;269344

http://support.microsoft.com/default.aspx?scid=kb;zh-cn;320609


原因
当 Microsoft Oracle OLE DB Provider登记事务时,该 Provider 必须访问下列注册表项:
HKLM\SOFTWARE\Microsoft\MSDTC\MTxOCI(Windows 2000 或 Windows XP)

HKLM\SOFTWARE\Microsoft\Transaction Server\Local Computer\My Computer(Windows NT 4.0)

运行 Web 服务的用户对于这些注册表项没有访问权限,从而对于安装 Oracle 的目录没有足够权限。
解决方案
若要解决此问题,请确保运行该 Web 服务的用户对于这些注册表项具有访问权限并且能够访问安装 Oracle 的


解决方法:

(1) web服务器和数据库服务器在同一台机器上,采用oracle8.15,或0racle.8.17不会出现问题。
(2)
步骤1.
regedt23进入注册表设置权限
HKLM\SOFTWARE\Microsoft\MSDTC\MTxOCI(Windows 2000 或 Windows XP)
添加用户IUSR_Machine(Internet 来宾帐户)和IWAM_Machine(启动 IIS 进程帐户)

步骤2. 找到oracle的安装目录d:\oracle\ora92
添加 IUSR_Machine(Internet 来宾帐户)和IWAM_Machine(启动 IIS 进程帐户)
并设置他的访问权限.并运用的下面的所有文件夹及文件。

步骤3.重新启动机器,就ok了。

不过按照上面的做法,采用:Provider=OraOLEDB.Oracle.1; 接口一定没有问题,
但是采用:Provider=MSDAORA.1; 可能会出现错误!
出错信息:dllhost.exe出现错误 或其他错误!

如果web服务器和数据库服务器不同机器上,可以服务器装oracle8.i的客户端,没有问题。装oracle9.i的客户端,解决方法同上面所提示。




方案二
1. 是Oracle 9.02i 版的问题,同时ORACLE_HOME 路径所在的分区格式是:NTFS格式;
2. 到Oracle\ora92,打开Ora92的属性->安全,选Authenticated Users (如果没有的话添加该用户)看下面的属性,将Read and Execute (读取和运行)的勾去掉,然后又勾上,确定后重新启动机器



====CSDN====
无厘头冲动回帖
zghmminwx 2005-12-27
  • 打赏
  • 举报
回复
ghostzp(我假装给老板工作,老板假装发给我工资!) :
首先,谢谢你的解答。但,我出现问题的时候已经在运行asp的主机上已经安装oracle的客户端并且在tns文件中配置smware54
SMWARE54 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 132.230.11.54)(PORT = 1521))
)
(CONNECT_DATA =
(SID = SMWARE)
(SERVER = DEDICATED)
)
)
所以,我一直很郁闷,找不到错误在哪里啊!

yzyun 2005-12-27
  • 打赏
  • 举报
回复
「开始」菜单\程序\Oracle - OraHome81\Network Administration-Net8 Assistant
若白师妹 2005-12-27
  • 打赏
  • 举报
回复
未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。 在安装这些组件之前,将无法使用此提供程序。

在你运行asp的主机上必须要安装oracle的客户端并且在tns文件中配置smware54

connStr="Provider=MSDAORA.1;Persist Security Info=True;User ID=SMWARE;Password=SMWARE;Data Source=smware54"
这个应该可以
zghmminwx 2005-12-27
  • 打赏
  • 举报
回复
谢谢lunge()了,这个问题困扰我好几天了,一直没有找到正确的解答,现在终于有了结果,呵呵
lunge 2005-12-27
  • 打赏
  • 举报
回复
呵呵,这个问题算是一个公开的bug


====CSDN====
无厘头冲动回帖
zghmminwx 2005-12-27
  • 打赏
  • 举报
回复
谢谢lunge()!!!
果然可以了!!太感谢了啊~
gsec02002 2005-12-27
  • 打赏
  • 举报
回复
上课消遣的最佳解决方案:爽翻天




1. 不想听课怎么办,看电视、聊天啊!
2. 要点:隐蔽、低调、不能笑出声!
3. 要件:能上网的手机一台!(不会用手机上网者面壁)
4. 方法:在手机中输入网址wap.gogosun.com,或打开移动梦网主页--手机电视--经典影视---阳光 电视 导航
5. 大功告成,慢慢爽吧。
6. 优点:危险系数小,易操作性高,吸引女生的法宝。
7. 缺点:如持续使用此法,多备电池一块。
云网LOGO地址:http://www.cncard.com/images/cncard_logo1.gif
云网链接地址:http://www.cncard.com/products/566.shtml
阳光 电视 导航LOGO地址:http://www.gogosun.com/new2005/images/logo.gif
阳光 电视 导航链接地址:http://www.gogosun.com



28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧