Skip to Content.
Sympa Menu

freetds - [freetds] Strange code

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO Frediano" <Frediano.Ziglio AT vodafone.com>
  • To: <freetds AT lists.ibiblio.org>
  • Subject: [freetds] Strange code
  • Date: Mon, 3 Nov 2003 15:10:59 +0100

Doing some tests with ODBC I doscovered a small problem with token.c

Calling SQLExecute with a query like "select * from table select * from
table" (two rowset) where table is empty mssql return

TDS_ROWFMT_TOKEN
TDS_DONEINPROC_TOKEN
TDS_ROWFMT_TOKEN
TDS_DONEINPROC_TOKEN
TDS_RETURNSTATUS
TDS_DONEPROC_TOKEN

With this code (taken from token.c):

case TDS_DONEINPROC_TOKEN:
/* FIXME should we free results ?? */
tds_process_end(tds, marker, done_flags);
if (tds->internal_sp_called) {
if (tds->rows_affected != TDS_NO_COUNT)
{
saved_rows_affected =
tds->rows_affected;
}
} else {
*result_type = TDS_DONEINPROC_RESULT;
return TDS_SUCCEED;
}
break;

DONEINPROC is not returned... This break t0003 test on ODBC (cause code
detect only one recordset instead of two).
I know that this code came from cursor change however I don't know
cursor protocol that much to remove it. In sp_execute case we should
remove TDS_DONEPROC, not TDS_DONEINPROC.

freddy77




Archive powered by MHonArc 2.6.24.

Top of Page