Why does SQLDataSources list a data source that returns the "Data source name not found" message when I connect to it?

If you are using the unixODBC Driver Manager, SQLDataSources (or DBI->data_sources if you are using Perl) returns the data sources found in odbc.ini. However, if any of these data sources are missing the Driver attribute or have a Driver attribute for which there is no corresponding ODBC driver entry in odbcinst.ini, unixODBC returns:

IM002, Data source name not found, and no default driver specified.

Note that if your application is linked directly with the Easysoft ODBC-ODBC Bridge (no Driver Manager), it uses the SQLDataSources function in the ODBC-ODBC Bridge instead.