now I understand... I assume that the original, unchanged assemblies would work on 64 bit when a 32 bit CLR is used (done automatically). However, we are indirectly referencing native code from Oracle, and this code needs to be present on the machine. Please make sure to have the 32 bit Oracle client installed for .NET2 and available in the path. The joy of unmanaged code!
You can create a simple x32 console application that tries to load the installed driver:
name = args.Length > 0 ? args :
var factory = System.Data.Common.DbProviderFactories.GetFactory(name);
(args.Length > 1)
(var con = factory.CreateConnection())
con.ConnectionString = args;
"Connection String Elements:"
var t = factory.CreateConnectionStringBuilder();
You can then call the application with "Oracle.DataAccess.Client" to see if the driver is loadable at runtime and the native code can be resolved. In the next step you can additionally pass a valid connection string as the second parameter to see if the connection can be made.
When this 32 bit code is working on the 64 bit machine, then OpenAccess should have no problem with the installed driver, and messing with the corflags is not needed.
Check out the latest announcement
about Telerik Data Access vNext as a powerful framework
able to solve core development problems.