?
Solved

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

Posted on 2005-03-02
6
Medium Priority
?
14,943 Views
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?

0
Comment
Question by:purplesoup
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 48

Expert Comment

by:schwertner
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.  
 
 
Explanation
-----------
 
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
        Pro*C/C++
        Pro*COBOL
        JDBC OCI Driver
        OCI
 
 
References
----------
 
  Oracle Provider for OLE DB User's Guide Release 8.1.7 - See the System
    Requirements section in Chapter 1
 
 
Additional Search Words
-----------------------
 
OraOLEDB.Oracle
OLE DB

0
 
LVL 13

Expert Comment

by:anand_2000v
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.
0
 
LVL 13

Accepted Solution

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

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

Copyright (C) Oracle Corporation 2004

This document provides information that supplements the Oracle Provider

for OLE DB documentation.

IMPORTANT INSTALLATION INFORMATION

==================================

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

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

OraOLEDB.dll

OraOLEDB.tlb

OraOLEDBgmr.dll

OraOLEDBpus.dll

OraOLEDBrfc.dll

OraOLEDBrmc.dll

OraOLEDBrst.dll

OraOLEDBus.dll

OraOLEDButl.dll

OraOLEDB.lib

Readme.txt

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

http://otn.oracle.com/tech/windows/ole_db/

0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 77

Expert Comment

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

From .Net I have used the following:
Provider=OraOLEDB.Oracle

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
0
 

Author Comment

by:purplesoup
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 9.2.0.4.01
Oracle Provider for OLE DB 9.2.0.4.0
Oracle Objects for OLE 9.2.0.4.8
Oracle ODBC Driver 9.2.0.5.4
Oracle Services for Microsoft Transation Server 9.2.0.4.0

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.



0
 
LVL 8

Expert Comment

by:plq
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

HTH
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Ready to improve network connectivity? Watch this webinar to learn how SD-WANs and a one-click instant connect tool can boost provisions, deployment, and management of your cloud connection.

Question has a verified solution.

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

Working with Network Access Control Lists in Oracle 11g (part 1) Part 2: http://www.e-e.com/A_9074.html So, you upgraded to a shiny new 11g database and all of a sudden every program that used UTL_MAIL, UTL_SMTP, UTL_TCP, UTL_HTTP or any oth…
Working with Network Access Control Lists in Oracle 11g (part 2) Part 1: http://www.e-e.com/A_8429.html Previously, I introduced the basics of network ACL's including how to create, delete and modify entries to allow and deny access.  For many…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Via a live example, show how to restore a database from backup after a simulated disk failure using RMAN.
Suggested Courses

762 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