ADO Connection Error "Provider cannot be found" with Oracle 9i and ADO 2.8

Posted on 2005-03-02
Medium Priority
Last Modified: 2011-08-18

I am running Windows XP SP 2 with an Oracle 9i client installed.

I want to open an ADO connection to an Oracle 9i database using the Oracle OLEDB provider.

My connection string starts: Provider=OraOLEDB.Oracle.1;

When I try to make the connection I get the error:

Provider cannot be found. It may not be properly installed.

Looking around on Experts Exchange I found that someone had had this problem but fixed it my installing ADO 2.8. I downloaded ADO 2.8 and tried to install it but was told it was already built into windows and so I didn't need to install it.

I have tried connecting without the ".1" with no luck, and am aware that it is possible to connect with "Provider=MSDAORA;" but this is a fairly large application and I won't want to retest the whole thing with a different OLEDB provider.

How can I make this connection?

Question by:purplesoup
LVL 48

Expert Comment

ID: 13438014
There are two reasons why this could be occurring:
  (1) You do not have Oracle client software installed.  You must install an
  Oracle client on all computers where your application will be run.  The Oracle
  Provider for OLEDB requires the Oracle client software to be installed.
  (2) You are missing the dynamic linked library "oci.dll".  This dll resides in
  the "<Oracle Home>\Bin" folder and is required when using the Oracle Provider
  for OLEDB.  The fact that this dll is missing is an indication that the
  client software may not have been installed in a typical fashion which
  resulted in the omission of this dll during install.  
The Oracle Provider for OLEDB makes Oracle Call Interface (OCI) calls that
communicate with an Oracle database over the SQL*Net (also known as Net8 or
Net Services) networking layer.  These components are installed with the
Oracle client software.
NOTE: The same client software requirement is true of the following
      programmatic interfaces:
        Oracle Data Provider for .Net
        Oracle ODBC Driver
        Oracle Objects for OLE
        JDBC OCI Driver
  Oracle Provider for OLE DB User's Guide Release 8.1.7 - See the System
    Requirements section in Chapter 1
Additional Search Words

LVL 13

Expert Comment

ID: 13438367
Make sure that you have the Oracle Provider for OLE DB installed on your machine where you are running this application at. Since that error will occur if it is not installed or if the system path does not have the oracle_home\bin in it.
LVL 13

Accepted Solution

anand_2000v earned 2000 total points
ID: 13438385
Oracle Provider for OLE DB


Copyright (C) Oracle Corporation 2004

This document provides information that supplements the Oracle Provider

for OLE DB documentation.



The OraOLEDB provider, being a COM component, is NOT Multiple Oracle

Home (MOH) compliant. Only one version of OraOLEDB can exist on a

machine at a time.

If you have Oracle Provider for OLE DB installed on your machine,

deinstall that provider before installing the new provider.

Installation Instructions


This is a manual installation patchset. Please follow the instructions

below to install this patchset.

Files shipped are with this merge patch are













Instructions for Installation


1. Shutdown any application using OraOLEDB driver

2. Copy the OraOLEDB.dll, OraOLEDB.tlb, OraOLEDBgmr.dll,

OraOLEDBpus.dll, OraOLEDBrfc.dll, OraOLEDBrmc.dll,

OraOLEDBrst.dll, OraOLEDBus.dll, OraOLEDButl.dll files to

<ORACLE_HOME>\bin directory.

3. Copy the OraOLEDB.lib to the <ORACLE_HOME>\oledb\lib directory.

4. Register OraOLEDB.dll using Regsvr32 utility.

For sample code, the latest patches, and other technical information

on the Oracle Provider for OLE DB, go to


Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

LVL 78

Expert Comment

by:slightwv (䄆 Netminder)
ID: 13439366
What language/application are you using?

From .Net I have used the following:

also, there is a known 'feature' from using .Net or ASP and oracle data providers.  You need to explicitly set folder permissions in the oracle directory to the appropriate users.

for example:
in .Net: grant read and list folder contents from oracle ( include all child folders ) to ASPNET

Author Comment

ID: 13444777
I went to the Oracle web site and found the OLE DB software for Oracle 9i. This is the file OraWin9204.exe.
I ran this and it extracted to a disk1 folder.

This doesn't seem to be a small install: 600 files in 250 folders according to Explorer's Folder Properties. There is a setup.exe so I'll run it.

The installer actually gives me the option to install the following products:
Oracle Data Provider for .NET
Oracle Provider for OLE DB
Oracle Objects for OLE
Oracle ODBC Driver
Oracle Services for Microsoft Transation Server

Obviously I want the OLE DB setup.

I get a list of options but leave everything on default.

I click "Install".

I now run the ADO Test Again. This time everything works fine.

I'll give the points to anand_2000v as he pointed out that you have to go to Oracle to get the updated old db. Note for anyone reading this that I didn't replace the files anand_2000v suggested, I just installed the software.


Expert Comment

ID: 14072389
For the benefit of future readers of this thread I solved the problem by giving the IUSR_xxx account NTFS permissions to the ORACLE_HOME directory.

Obviously this would only apply where you get the problem in IIS, not from other authenticated processes/apps


Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
Shell script to create broker configuration file using current broker Configuration, solely for purpose of backup on Linux. Script may need to be modified depending on OS-installation. Please deploy and verify the script in a test environment.
This video shows how to copy a database user from one database to another user DBMS_METADATA.  It also shows how to copy a user's permissions and discusses password hash differences between Oracle 10g and 11g.
This video explains at a high level about the four available data types in Oracle and how dates can be manipulated by the user to get data into and out of the database.
Suggested Courses

621 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question