Just in case anyone else stumbles into this I've just spent quite a bit of
time trying to work out why my scripts are not working as intended to discover
that ping no longer works via DBI:ODBC:mysql (at least in mysql-connector
3.51.12) (to sql server, oracle etc they are fine).

DBD::ODBC attempts to do a SQLTables call for NOXXTABLE, followed by various
SQLDescribeCol, SQLBindCol calls and they all succeed even though the mysql
server was taken down immediately after a connection from Perl.

i.e.
you can
SQLConnect/SQLDriverConnect to running mysql server
stop the mysql server
SQLTables(any table which did not exist when you connected)
  works
SQLDescribeCol works
SQLBindCol works
SQLFetch returns SQL_NO_DATA

In fact, if you connect, shut mysql server down (so any socket connection the
mysql odbc driver had is broken) start it up again and create a new table, the
ODBC driver will not fail and will NOT see the table does exist. A
SQLPrepare/SQLExecute does however return the connection to mysql server has
been lost.

I don't like cross posting so I'll be mentioning this separately on the
myodbc list.

Martin
--
Martin J. Evans
Easysoft Ltd, UK
Development

Reply via email to