This is the mother of all problems, and I admit that I am stumped. It will be a miracle if I can explain this problem and my findings correctly.

I'm in the process of upgrading from Oracle 8i to 9i. I have a production 8i system that works. I'm also working on a network client installation of Oracle 9i. This is ultimately my goal. I do not want to have to install the client software on hundreds of PCs. Currently, 8i is installed locally on all client PCs. I now have Oracle 9i Client installed on a network drive called O:. I installed this software from the server itself. Then, I exported the Oracle part of the registry, which will be used to make a master registry file that will be imported for each client PC.

On a test client PC, I have imported the Oracle registry items. All the entries point to the O:. I have added O:\oracle9\bin to the PATH on the client PC.

I can do a successful TNSPING to my database. And I can run SQLPLUS and run commands. There is a connection. That part is fine.

I have a Visual Basic application (which I did not write) that is an interface into my database. When I attempt to run the VB app from the test client PC, I get the following error:

Run-time error '3706'
Provider cannot be found. It may not be properly installed.

Here is the Visual Basic connect string from the code:

Connect_Str = "Provider=OraOLEDB.Oracle;Data Source=xxxx;" & _
"User ID=xxxxx;Password=xxxxx;FEN=T;FRC=5;FDL=5;"

I have checked various Oracle documents and followed the suggestions, i.e. verify that oci.dll is in the path (it is), verify that "Authenticated Users" has Read & Execute privileges on the network O: Oracle folder (it does).

I then tried to install the Oracle Client locally on the PC. That works, of course. Then, I will take the registry and path variables and map them over to my O: instead of C:. It still works, no error. Then, I uninstall Oracle from C:, and the error returns. So I thought that maybe Oracle was installing files into c:\winnt\system or c:\winnt\system32 that were needed. These files would be missing on the Network O: client installation. So I monitored the folders, and I did find a few files that Oracle adds, so I copied them to the test client PC. But the error remained.

Now, it gets even more strange. I copied the o:\oracle9\bin folder to c:\oracle9\bin. At this point, there is no Oracle installation on C:, just the c:\oracle9\bin folder. The error then goes away and the app connects. If I remove the c:\oracle9\bin folder, the error comes back. All along the registry variables and path are pointing to O:. There is NO reference to C: in the environment PATH or the registry!! Then, perhaps the strangest thing occurs. With the c:\oracle9\bin folder present, I remove the o:\oracle9\bin PATH value, and I get a different error about a missing DLL file, then the 3706 error again.

So what I don't understand is that somehow the O: files are being used, but somehow the files just are not quite good enough so the C: files are also needed. The c:\oracle9\bin and o:\oracle9\bin files are exactly the same.

If anyone is still reading and has an clue as to what is causing my problem, I'd very much like to hear about it.

Thanks.

Gary