Broken error reporting with ODBC app, w/ patch

Ken Ellis <>
Mon Jan 31 03:48:04 CET 2011

The ODBC app does not report informative error messages for connection
issues.  It always reports "No SQL-driver information available",
which is misleading since something as simple as attempting to connect
to a database that does not exist will return this error.  This is due
to a bad handle being passed in db_connect in odbcserver.c --
incorrectly as a statement handle instead of a db connection handle.
See patch below.

With the patch you get:
{error,"[unixODBC]Sending the authentication packet failed;\nCould not
connect to remote server. Connection to database failed."}
{error,"[unixODBC][Driver Manager]Data source name not found, and no
default driver specified  Connection to database failed."}

In the current version both of the above errors would result in the
same message:
{error,"No SQL-driver information available. Connection to database failed."}

A google search suggests a reasonable amount of time could be saved
for those trying to use this package:


diff otp_src_R14B01/lib/odbc/c_src/odbcserver.c
<       diagnos = get_diagnos(SQL_HANDLE_STMT, statement_handle(state));
>       diagnos = get_diagnos(SQL_HANDLE_DBC, connection_handle(state));

More information about the erlang-questions mailing list