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
Related
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
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.
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 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.
I am currently developing on a Win7-32bits computer. Everything works fine. It's a ASP.NET application.
I was able to use Microsoft's Oracle deprecated .NET provider to connect to Oracle (using 32 bit instant client) and also ODP.NET. No problems at all. Application runs fine.
The problem comes when I deploy it to IIS7 on Windows 2008 Server 64bit computer. I can't get Microsoft's deprecated .NET provider or ODP.NET to work easily.
Is there a straightforward way to use a 32bit based ODP.NET or Microsoft's Oracle deprecated .NET provider in Windows 2008 Server 64bits?
DLL hell here!
Thanks.
Have you tried creating a 64bit version of your software and deploying with the x64 version of ODP.NET?
See this answer for Visual Studio configuration details.
Since this question is unanswered I'll add a link to another answer I created a while ago even though this question is very old.
Is ODP.NET required for Oracle 11g Client?
In general, change to Oracle.ManagedDataAccess (the managed code version of the ODP.NET client made by oracle) instead of the non-managed alternatives. This will help you a lot with "bittyness".
if you set IIS to run 32 Bits then I can confirm that the odp.net driver should work without problem as long as it's the 32 bit client. http://support.microsoft.com/kb/894435.
I've done this in iis for websites in the recent past and for our winforms app have set it to be x86 build so we always get the 32 bit odp providers on a 64 bit os (though you can do it with corflags as well).
Cheers,
Crocked