2.10 ODBC error "Data source name not found and no default driver specified" under Windows x64
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:
(or simply use the shortcut in "Control Panel" -> "Administrative Tools")
(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).