Delphi7连接Oracle提示“未找到Oracle 客户端和网络组件”。Win7系统64位。Oracle10G客户端已安装且能连接

Delphi7连接Oracle提示“未找到Oracle 客户端和网络组件”。Win7系统64位。Oracle10G客户端已安装且能连接,第1张

今天在测试ASP.NET程序,在连接ORACLE数据库时报出了“Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. Provider is unable to function until these components are installed”的错误。可我本机上确确实实已经装了Oracle Client,而且在我本机上运行时也正常,一旦通过IIS发布,在运行时就会报上述错误。通过查找网络资料,该问题已经成功解决。现将解决过程发布,供大家参考。

首先,把可能出现该问题的情况简单阐述一下:a:Oracle 9.02i 版的问题b:是NTFS格式分区造成的。Oracle公司对此问题也给出了描述:Problem Description ------------------- When running an application that connects to Oracle and uses the Authenticated User privilege (such as Microsoft’s Internet Information Server (IIS)) via Oracle’s 9.2 client software and any of these programmatic interfaces 1. Oracle Provider for OLE DB 2. Microsoft OLE DB Provider for Oracle 3. Oracle ODBC Driver 4. Microsoft ODBC for Oracle 5. Oracle Objects for OLE (OO4O) you will receive one of the following errors: (1) Oracle Provider for OLE DB Error Type: Microsoft OLE DB Service Components (0x80070005) Access is denied. (2) Microsoft OLE DB Provider for Oracle Error Type: Microsoft OLE DB Provider for Oracle (0x80004005) Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. Provider is unable to function until these components are installed. Or Error Type: Microsoft OLE DB Provider for Oracle (0x80004005) Oracle error occurred, but error message could not be retrieved from Oracle. (3) Oracle ODBC Driver Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) Specified driver could not be loaded due to system error 5 (Oracle in OraHome92). (4) Microsoft ODBC for Oracle The Oracle(tm) client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3 (or greater) client software installation. You will be unable to use this driver until these components have been installed. (5) Oracle Objects for OLE (a) while using a GLOBAL.ASA file Error Type: Active Server Pages (0x0) An error occurred while creating object ’OraSession’. (b) not using a GLOBAL.ASA file Error Type: Microsoft VBScript runtime (0x800A0046)Permission denied: ’CreateObject’ (6) Other miscellaneous errors (a) The Specified Module Could Not Be Found

接着,我们来解决此问题,方法很简单,找到ORACLE_HOME文件夹,右击—〉属性—〉安全,选Authenticated Users,查看它的属性,将Read and Execute的勾先去掉(默认情况下该勾是选中的),在勾上,然后重新启动你的机器,在运行程序,该问题就成功解决了。ORACLE公司也给出了解决方案:Solution Description -------------------- You need to give the Authenticated User privilege to the Oracle Home by following these steps: 1. Log on to Windows as a user with Administrator privileges. 2. Launch Windows Explorer from the Start Menu and and navigate to the ORACLE_HOME directory. 3. Right-click on the ORACLE_HOME folder and choose the "Properties" option from the drop down list. A "Properties" window should appear. 4. Click on the "Security" tab on the "Properties" window. 5. Click on "Authenticated Users" item in the "Name" list (on Windows XP the "Name" list is called "Group or user names"). 6. Uncheck the "Read and Execute" box in the "Permissions" list (on Windows XP the "Permissions" list is called "Permissions for Authenticated Users"). This box will be under the "Allow" column. 7. Check the "Read and Execute" box. This is the box you just unchecked. 8. Click the "Apply" button. 9. Click the "OK" button. 10. You may need to reboot your computer after these changes have been made. Re-execute the application and it should now work. Explanation ----------- If you install Oracle9i Release 2 (9.2.0.1) on a computer running Windows with an NTFS partition, the contents of ORACLE_HOME directory will not be visible to users who are authenticated on that machine. These permissions were not set properly when the software was installed. Applications that were working fine with previous versions of Oracle software will stop working when they upgrade to Oracle 9.2. NOTE: The application will continue to work if the user has logged onto the machine as an Administrator. Any application that is using the Authenticated User privilege will not work. A notable example would be IIS which might service some of the requests based on the Authenticated User privileges. To demonstrate the problem in further detail, you can log on to the operating system as an authenticated machine user. You won’t be able browse the contents of the ORACLE_HOME directory demonstrating your inability to load any Oracle DLLs or make a connection. References ---------- Bug:2498880 - Oracle 9I Release 2 Installation Issue on Windows 2000 NTFS File System Additional Search Words ----------------------- OLEDB

需要注意的是:在XP系统下,属性中可能找不到安全选项卡,如何去解决呢?很简单,打开一个窗体,选择“工具”—〉文件夹选项...—〉查看,将使用简单文件共享前的勾去掉,确认即可(如下图)。

安装好oracle客户端,并配置好TNS信息。

配置好odbc连接信息,sql server肯定不能直接调用oracle的客户端去连接的,只能通过odbc的方式间接的去连,先要打开odbc界面。

然后选user DSN,点Add,选择上一个画面中看到的oracle driver。

出现这页面后,在Data Source Name随便输入一个名字,这个名字就要后面sql server要用到的。TNS Service Name的下拉列表中就是oracle中配置好的TNS信息,如果你开始没有配置的话这里就为空的。你选一个TNS名字后,可以点下test connection验证下看连接上了不。

在前面创建好odbc数据源后就可以在sql server中配置。先打开management studio。在server objects下面有个Linked Servers,选中它并右击new linked server。在linked server中输入一个名字,随便取的,在后面执行sql时会用到这名字。provider就选Oracle Provider for OLE DB。 product name就填oracle Data source就是你开始配置odbc时取的名字。其他地方就不用管了。

然后再点下Security会d出另一个页面,在此页面最下面的地方输入用户名和密码,然后点OK。

在Linked Servers下面会看到ORA_ARWEN,大功告成了。

因为本身系统在一些不正常开关机的时候会丢失文件的;

还有就是本身你的系统就已经被精简掉了这个文件;

你可以尝试重装系统,www.deepinghost.com里面的系统都是优化精简过的,保持了原版系统的风格,可以试试。

一、ole32.dll:

是链接和嵌入在应用程序中的对象的过程文件;

它是用于编写和整合来自不同应用程序的数据在Windows作业系统的骨干部分。

二、功能:

该ole.dll文件模块被定义为一个包含了一组用于实现在任何基于Windows的应用程序的一些重要特征的面向对象技术

该ole.dll文件的对象的链接功能允许对特定对象共享一个数据源

它存储包含数据及在一个文件中的数据的图像文件的名称

更新数据源也将更新文档中的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/9900110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存