cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
mpa109
Level 5

Remote Oracle Connection using Instant Client (InstallScript)

Is there a connection string option to use to connect to a remote Oracle instance with the Oracle Instant Client that does NOT use ODBC in any way?

In our setup, we originally tried using DRIVER={Oracle in instantclient_10}, set that in the ISSQLDBMetaData table, and that was successful.

Then I was told that we don't want the user to have to install the ODBC driver for the installer to run, because our application doesn't need ODBC, so the installer shouldn't, either. I tried using PROVIDER=MSDAORA and PROVIDER=OraOLEDB.Oracle, and they ONLY worked when the ODBC driver for IC was also installed.

When the driver was not installed, using MSDAORA would throw this:

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.


When the driver was not installed, using OraOLEDB.Oracle would throw this:

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


Any thoughts on a PROVIDER value that I could use that would work a little better? Or another connection string altogether that I could use?

Any suggestions would be greatly appreciated.

Thanks!

BTW, current connection string as in the ISSQLDBMetaData table is PROVIDER=MSDAORA;Data Source=XXX;User Id=XXX;Password=XXX;

Also, again, this is InstallScript.
Labels (1)
0 Kudos
(6) Replies
hidenori
Level 17

The built-in SQL feature uses Microsoft ActiveX Data Objects (ADO) which enable client applications to access and manipulate data from a variety of sources through an OLE DB provider. Therefore, you must have the provider specified in the ISSQLDBMetaData table installed on the target system. You might want to consider using the "Microsoft ODBC for Oracle" driver because it is available on all Windows platforms except clean Windows 95 machines.
0 Kudos
mpa109
Level 5

Thank you for the reply (and sorry for the lateness in getting back, I was out of the office).

The Oracle Instant Client will not work with the "Microsoft ODBC for Oracle" driver as it also always throws this error:

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.


So, you have to also install the ODBC driver for the Instant Client that Oracle provides, and use the "Oracle in Instantclient_10" driver instead (or something similar, I forget, really). This works fine.

However, my post originally noted that we DO NOT want to use ODBC in any way, so I was looking for a different connection string to build using a PROVIDER value instead. I can't seem to find one that works with the Instant Client, and was hoping maybe someone else stumbled onto one.

This appears to be a limitation of the Instant Client, not IS, I just haven't been able to find anything out there that would work, so I thought I'd check here.

Thanks.
0 Kudos
hidenori
Level 17

Oracle mentions that "To use the Microsoft ODBC and OLEDB driver, ociw32.dll must also be copied from ORACLE_HOME\bin" in the OCI Instant Client section of the Oracle Call Interface Programmer's Guide. ociw32.dll is included in the the Oracle Instant Client Basic package, but some of dependencies below are not included:

ORACORE10.DLL
ORANLS10.DLL
ORAUNLS10.DLL
ORAUTS.DLL

Once you copy these files from the standard Oracle client, Microsoft ODBC for Oralce will work with the Oracle Instant Client.
0 Kudos
mpa109
Level 5

OK, thanks. We *still* do not want to use ODBC in any way, so I'll keep on looking. Maybe your information can lead me in a new direction.

Thanks again.
0 Kudos
mpa109
Level 5

Does the same info apply for InstallShield 2009?
0 Kudos
hidenori
Level 17

Yes, it does.
0 Kudos