Dear all, I found a bug and don’t know where to file it. Just send the mail to let you know. In the apr_dbd_freetds.c +630, function freetds_open:
sql = apr_palloc (pool, sizeof (apr_dbd_t)); // should be apr_pcalloc, like apr_dbd_pgsql_open.c +1231 if calls dbd_freetds_query after freetds_open, it will fail. static int dbd_freetds_query(apr_dbd_t *sql, int *nrows, const char *query) { if (sql->trans && sql->trans->errnum) { return sql->trans->errnum; } … Please confirm this issue. http://svn.apache.org/viewvc/apr/apr-util/branches/1.4.x/dbd/apr_dbd_freetds.c?view=markup http://svn.apache.org/viewvc/apr/apr-util/branches/1.5.x/dbd/apr_dbd_freetds.c?view=markup Best Regards Chunwei Liu