First published on MSDN on Oct 18, 2011
I recently had an issue where after the installation of a Third party Client side tools, we were not able view the drivers listed in the ODBC Data Source Administrator (odbcad32.exe).
In order to create a DSN to use this third party driver, we had to take a backup/export of the registry key of an existing DSN, edit the content of the registry and rename the existing DSN name to new DSN and then had to merge it back to the registry.
We did check that we had the sufficient privileges on the system, the third party client tools is properly installed and we are able to use this driver for connecting to the third party databases without any issues. So we realized that the issue is not with the third party driver rather it is the registry key from where the ODBC Data Source Administrator (ODBCAD32.exe) actually picks up the list of drivers.
The ODBC Data Source Administrator (ODBCAD32.exe) picks up the list of entries from the following registry path.
On a x64 bit system for a x64 bit drivers: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers
On a x64 bit system for a x32 bit drivers: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers
Note: Above screenshot is taken from a x64 bit system for a x64 bit driver
We realized that the values for the following registry keys should always be
(value not set)
and if the value is set to an empty string or any other value (either by Third party application or open this registry and close it without any changes) we will run into similar kind of issues where the drivers are not listed in ODBC Data Source Administrator (odbcad32)
On a x64 bit system for a x64 bit drivers:
1) HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers\(Default) and