-2147467259/Oracle client and networking components were not found - oracle

i have used vb6 application with oracle client 11. but at the run exe, i got the below error:
-2147467259/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.
Application platform: VB6
Application Type: exe
Window: window 10
Oracle Client version: 11

This is a duplicate question and the cause could be a number of different issues. This is likely due to the wrong client version being installed on your machine, and/or it is related to a known issue involving a security update for specific versions of windows. Please see the following Questions on Stack Overflow.
VB6 application oracle 12 64bit connection
Error ORA-03106 When using VB6 to access Oracle database in Windows 7 64bit
Oracle Client and networking components were not found - Excel VBA
Connection to Oracle through VBA no longer working
Here is the Mircosoft support article on the patch issue: https://support.microsoft.com/en-us/help/3126587/ms16-014-description-of-the-security-update-for-windows-vista-windows

Most likely you installed the 64-bit version of Oracle Client 11. VB6 binaries are always 32-but, thus you must install the 32-bit version of Oracle Client.
In case you need both, 32 and 64 bit versions one one machine follow this instruction: BadImageFormatException. This will occur when running in 64 bit mode with the 32 bit Oracle client components installed
According to your error messages you use the drivers from Microsoft. These drivers are deprecated for ages, you should prefer the drivers from Oracle.

Related

Multiple Oracle Clients DAC

My group is moving to a new Windows Server (Windows Server 2016). We need to migrate existing code without re-compiling. The existing code (on old Server 2008) utilizes Oracle 11g and 12c clients 32 and 64 bit. Mostly Unmanaged (Oracle.DataAccess.Client) clients but some use managed clients (Oracle.ManagedDataAccess.Client).
Can I install all of these clients in the GAC so that the applications will select the correct one?
If you really managed to install Oracle 11g and 12c clients 32 and 64 bit and ODP.NET Managed Driver and all of them are working, then you can be proud of yourself.
ODP.NET Managed Driver (Oracle.ManagedDataAccess.Client) is independent from all others, you an just install it.
It is not needed to install more than one version (i.e. one each for 32-bit and 64-bit). So, just install version 12 and you are done.
Unless you force a specific version (see How to load specific version of assembly from GAC) you have the Publisher policy which redirects to the installed version.
In case you install Oracle client 12.2 or never, have a look at SSMA unable to find specified provider

Oraclm32.dll missing error when I try to run my application

I am currently working in Windows 7 32 bit system and my application has to run in a Windows 8 64-bit system which is the server. If sever side Oracle 64 is installed whether can I able to run my application there?
If I try to run I am getting error as oraclm32.dll is missing.
Can anyone help me is resolving the issue?
This is not a Oracle server prloblem, but client.
You can provide some more details about the architecture of your application.
Your application is a 32bit exe, so loads the oracle client 32bit.
32bit oracle client can connect to 64bit oracle server, no problem.
Installation of oracle server, includes oracle client with same architecture (in your case 64bit), but manually Oracle client can be installed twice, 32bit and 64bit on the same machine.
Take a look on Oracle instant client, can be a good choice for installing Oralce client on a server environment.
http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html
Hope it helps.

oracle client for windows 8 64bit

I am developing an app in Delphi 2010 that needs to communicate with remote Oracle 11g database. Therefore I use the ADODB components.
Everything is fine, as far as I am working on my desktop that has Windows 7 32-bit installed.
Problems started when I tried to deploy the app on Windows 7 64-bit with 64-bit Oracle Client installed. Luckily installing 32-bit client helped.
Unfortunately now I have to install it on my notebook with Windows 8 64-bit. None of the clients is working. I have already tried installing 64-bit client, 32-bit client, reinstalling both of them, installing then by OUI and manually, but without success.
Did anyone encounter this problem yet and managed to solve it?
The problem is on .dll of connection of Delphi odbc. We has the same problems with C++Builder (Delphis Like). Odbc client .dll for oracle connections is developed only for 32 bits.
Unitl then we only can connect to server 64bits with client 32bits. 64 bits server and 64 bits clients dont work. Unless you find thirdpartner odbc component, who doesn't use a native odbc .dll. We tried to use SQLDirect, but doesn't work well in firsts versions.
Best Regards,
Diogo Maschio

Using Oracle DB from C#-VS2005

Oracle installed on the server is 10.2.0.3 Enterprise Edition 64bit (10g).
ODAC is showing version as 10.2.0.2.20 is on a Windows 2008 x64 machine.
Error I run into when I run my app in my test environment in above machine is
The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception.
I tried using .Net Oracle namespace and I get this using a version from
C:\Windows\Microsoft.NET\Framework64\v2.0.50727
Error:
Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
Anyone run into such an issue?
Also what is the right Oracle Client/ODAC to use on Windows 2008 x64 machine? Anyonen have a link?
You seem to have installed the 32 bits Oracle client, or you must have a 32 dll masking your 64bits client. You need to install the 64bits client so that 64 bits dll can be accessed by your app. Look for an oci*.dll in your path.
Also look into the registry under hklm\software\oracle to see how many 'homes' you have.
Finally if you have toad on that client look at the home selector in the connection dialog box. It will show incomplete or inoperative homes in red.

Is ODP.NET required for Oracle 11g Client?

I may be asking the wrong question here, I'm willing to change it if so.
I have a project that is using the Microsoft.NET Oracle provider (our plan is to change to ODP but we haven't done so yet).
I am trying to get this project to build on a windows 2008 (x64) build server. It builds just fine but our unit tests fail when they hit stuff on the Oracle database.
I had initially installed the 32bit oracle 9i client which is what we currently use on our winxp dev boxes and the previous 2003 build server. But now this gets a message like: Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
We tried compiling to the x86 platform but that didn't change the error message.
I now have the 11g 64 bit client installed but I am getting a message saying System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
So what Oracle install should I be using?
Edit:
I was able to get this to work. Turned out it was the testing causing the problem, by forcing NUnit to run in 32bit mode: Link I was able to get the tests to work using the old 32 bit driver. This would be a crappy answer to the question so I am not using it but will gladly award the correct answer to anyone putting in some good info on transitioning to Oracle 64bit drivers.
When it comes to Oracle, I like to use Oracle Instant Client :
You don't have to install anything on the target machines (including dev boxes !).
You can make sure that your application will run with the specific client you picked.
You could even easily have multiple applications work with different client versions on the same computer.
As a downside, it adds a significant weight to your application (~19Mb minimum).
Check What is the minimum client footprint required to connect C# to an Oracle database? for more information. To know how to set up a Visual Studio project that will work on x86 as well as x64 machines, check my blog post Oracle Instant Client in Visual Studio.
I'm adding a new answer since as of this fall (2012) the ODP Managed Code Beta is available. See this link for more information. It is for us highly stable and we are using it in production, mainly because of these reasons:
No installation (except for entity framework where a simple registration is needed)
It is smaller than the unmanaged version, the footprint is approx 6 MB.
It is NOT "bit sensitive", ie Any CPU will finally work with ODP :)
More intuitive mapping C# types <-> Oracle types (and it solved some problems with EF and model generation from database)
Supports EZCONNECT (all versions of the unmanaged ODP did not), ie no more tnsnames.ora hassles.
But for transitioning to 64 bit, download the managed ODP driver and change the Oracle.DataAccess reference to Oracle.ManagedDataAccess and recompile :)
I think the message "System.Data.OracleClient requires Oracle client software version 8.1.7 or greater" it's similar to "Oracle client not installed, installed but not found or installed but it's needed 8.1.7 or greater".
Check on regedit if the values are right under the key:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraOdac11g_home1
Where OraOdac11g_home1 depends on the Oracle Home name for your installation.
Also, try to connect through Visual Studio to see if its possible.
I have had an issue which could relate to what you are seeing.
I initially had the just the Oracle 10g client installed on my machine and the .Net Oracle.DataAccess component version number was 10.2.0.100 - this was for .Net runtime v1.0.3705
I installed ODP.Net and the Oracle.DataAccess component version is now v2.102.2.20 and runs on .Net runtime v2.0.50727 - I cant find the reference as to why Oracle did this - it was something to do with bringing version numbers in line with the runtime version
It took me a day to work this out. We dont use the 11g client yet and I havent used the 8i client for ages so I dont know what the version numbers would be for those clients, but I'd check it if I were you what.
In short, Oracle back-tracked the component version numbers which could be making your 11g component appear out-of-date as opposed to Oracle 8i components
I have found many times that the error "requires Oracle client software version 8.1.7 or greater" is a notoriously misleading error. From distant memory I seem to remember that this usually indicates a file IO permissions problem. I think it may be that the ASP.NET worker process (or whichever identity an application is running under) requires some sort of read or write permission to a folder in the oracle client folder hierarchy...
This can be a cause of multiple oracle homes in the environment. Remove the older version oracle home in your build system. try generating the build again with the single home. There are some issues with 9i version ODP.NET and 10G/11G connectivity

Resources