vb.net32bit-64bitopenedgedsnprogress-db

Having Trouble with ODBC DSNs and 32 bit vs 64 bit


I am writing an application to interface with a Progress DataBase in VB.net. My development machine is a 32bit Win 7 computer. I have a System DSN configured for the database that I need to use. Since it's on a 32 bit machine its a 32 bit DSN.

App works great on my local computer, the problem arises when I try to take it to one of our 64 bit machines. Now the 64 bit machines seem to have the 32 bit driver installed on them (I opened C:\Windows\SysWow64\odbcad32.exe which, based on research, should show my all 32 bit System DSNs and all User DSNs) and a seemingly same DSN (named the same way and everything) exists in System DSNs.

I tried compiling for x86 instead of AllCPUs, but I still get errors. Some of the errors are below.

Any suggestions on how to fix this so that it runs on both 64 and 32 bit machines? Is there a way to make double sure that the 64 bit machines are working on the 32 bit DSNs?

My understanding of Error [IM014] is that the program is finding the DSN on the 64 bit machine, but cant use it, because it's a 32 bit DSN.

Most of the errors for the second error are on here All the 08S01's are "Communication Link Failures", the IM006 is "Driver's SQLSetConnectOption failed" and apparently HY000 has about 20 different meanings.

DSN Connection String, Target CPU: AllCPUs, 32 Bit Machine : Runs Fine
DSN Connection String, Target CPU: AllCPUs, 64 Bit Machine : Error [IM014]
DSN Connection String, Target CPU: x86    , 32 Bit Machine : Runs Fine
DSN Connection String, Target CPU: x86    , 64 Bit Machine : Error [HY000]
                                                                   [HYC00]
                                                                   [08S01]
                                                                   [08S01]
                                                                   [08S01]
                                                                   [IM006]
'Yes all of those errors on the last one are from one connection attempt.


Solution

  • See these links:

    https://www.simple-talk.com/sql/database-administration/getting-data-between-excel-and-sql-server-using-odbc--/

    http://social.msdn.microsoft.com/Forums/en-US/abf34eea-1029-429a-b88e-4671bffcee76/why-cant-32-and-64-bit-access-database-engine-aceoledb-dataproviders-coexist

    Microsoft allows either 32 or 64 bit drivers. If you have office32 then you have the 32 bit driver. The second link shows a work around of sorts.

    Regards

    Ignacio