Created On:  12 January 2012

Problem:

On 32-bit Windows systems, the default ODBC registry location that contains AcuXDBC information is HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI (System Data Source Name Definition), HKEY_CURRENT_USER\Software\ODBC\ODBC.INI  (User Data Source Name Definition) and HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI (Driver Definition).


For 64-bit Windows systems, the default ODBC registry locations are also HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI and HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI, which are used by the 64-bit ODBC drivers for defining the System Data Source Name (DSN) and driver.

For 32-bit ODBC drivers, there is a secondary ODBC registry location, HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI and HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI which holds the 32-bit system DSN and driver definition.

The confusion can come with User DSN’s as both the 32-bit and 64-bit ODBC administrators will store them in the HKEY_CURRENT_USER\Software\ODBC\ODBC.INI registry area.

Resolution:

For versions of AcuXDBC prior to 9.1.0, only the 32bit driver (display name Acucorp AcuXDBC) was supplied. This has to be configured with the %WINDIR%\SysWOW64\odbcad32.exe version of the ODBC administrator and uses the 32-bit ODBC keys. The correct version of the ODBC Administrator was in the AcuXDBC program folder.

With the 64-bit version of the 9.1x products, only the 64-bit version of the AcuXDBC is supplied and this has to be configured with the %WINDIR%\System32\odbcad32.exe version of the ODBC administrator and uses the 64-bit ODBC keys. The correct version of the ODBC Administrator is in the AcuXDBC program folder.

Care must be taken when working with user DSN’s as both the 32-bit and 64-bit ODBC Administrators will write them to the same location, so 32-bit and 64-bit user DSN’s will appear in the ODBC selection list when you are trying to connect to database.

If you do select the wrong driver, you will get a ‘The specified DSN contains an architecture mismatch between the Driver and Application’ error. You need to make sure you are using 64-bit driver with a 64-bit application.