When attempting to use ODBC to connect to a database under Windows x64, the following error appears in the log:


15 Oct 2018 18:18:27 Connecting to ODBC data source MYDBMS...
>>> IM002/0: [Microsoft][ODBC Driver Manager] Data source name not found and
no default driver specified
>>> 08003/0: [Microsoft][ODBC Driver Manager] Connection not open
15 Oct 2018 18:18:27 >>> Error X'0100003B' opening DBMS list <<<
15 Oct 2018 18:18:27  -> Severity: Error
15 Oct 2018 18:18:27  -> Facility: DBMS interface
15 Oct 2018 18:18:27  -> Abstract: SQL error


We are using the same ODBC_* settings that worked on our 32-bit server (or we have otherwise correctly set up LISTSERV to talk to ODBC).


NOTE:  This FAQ is really more aimed at the 32-bit version of LISTSERV running under a 64-bit version of Windows.  Since L-Soft no longer provides a 32-bit version of LISTSERV, it is unlikely that users of the current supported version will notice this issue; but since Windows Server 2016 provides easy access to BOTH the 32- and 64-bit ODBC administrators, we're leaving it in for now.


On an x64 system there are two versions of the "ODBC Datasource Administrator" tool: One version for 64-bit and one version for 32-bit. When creating a datasource you have to take care to use the correct tool in respect to which client programs will be using the datasource. That is, if a 32-bit program needs to access the datasource, you have to create this datasource using the 32-bit version of the tool.

Unfortunately, the shortcut to the tool which you can find at the usual location in "Control Panel" -> "Administrative Tools" points to the 64-bit version of the tool without even a hint that there also is a different version. The 32-bit version is in a special sub-folder of the Windows folder.

So, depending on what sort of datasource you need (for 64-bit or 32-bit access) you have to use either of these two:

For 64-bit:
%SystemRoot%\system32\odbcad32.exe
(or simply use the shortcut in "Control Panel" -> "Administrative Tools")

For 32-bit:
%SystemRoot%\SysWOW64\odbcad32.exe

(Note that both files have the same name "odbcad32.exe", even the 64-bit version - the difference in the two files is their location, where again it is confusing that the tool for the 32-bit datasources is in a folder that is called "SysWOW64"...)

For users of 32-bit LISTSERV, the solution is to re-create the datasource as a 32-bit datasource using the "hidden" 32-bit ODBC tool (which, as noted above, is no longer hidden as of Windows Server 2016).