ODBC on x64-Machines

Tuesday, August 7th, 2007

ODBC on x64-Machines

Article created 2007-09-07 by Rainer Gerhards.

Microsoft provides integration of 32bit software into the 64 bit world. They have worked quite hard to make any differences invisible to the user and even the programmer. However, there are some subtleties that cannot be totally hidden. One of them can be experienced in the ODBC subsystem.

There are actually two ODBC subsystems in 64bit-Windows – one for the 64 bit world and one for the 32 bit world. This is necessary, because there were a number of changes that prevented 32 bit drivers from running in the 64 bit environment. In general, these two worlds are quite transparent to the user. However, there are some restrictions:

  • Drivers can not be shared between worlds. Most importantly, that means that many ODBC drivers (e.g. JET) are not available to 64 bit ODBC programs
  • Changes to the ODBC configuration made with 32 bit tools affect only the 32 bit world – and vice versa

In practice, these two restrictions limit the utility of ODBC on 64 bit Windows versions. This comes at no surprise, given that MĂ­crosoft has declared ODBC to be legacy some years ago and is actively promoting OLEDB (where there is a rich choice of drivers available).

When working with ODBC, please keep these restrictions on your mind. For best results, we recommend using OLEDB functionality, which is available in Adiscon products. OLEDB also offers a better performance.