[freetds] ODBC - binary, row count and compatibility
ZIGLIO, Frediano, VF-IT
Frediano.Ziglio at vodafone.com
Tue Mar 9 10:32:54 EST 2004
>
> On Tue, 9 Mar 2004, "ZIGLIO, Frediano, VF-IT"
> <Frediano.Ziglio at vodafone.com> wrote:
> > > 81(TDS7_RESULT)
> > > ff(DONEINPROC)
> > > 81(TDS7_RESULT)
> > > aa(ERROR)
> > > ff(DONEINPROC)
> > > 79(RETURNSTATUS)
> > > fe(DONEPROC)
> > >
> > > it can't return SUCCESS just because that last DONEPROC was
> > > OK. It has to
> > > notify the client there was an intervening ERROR.
> >
> > SQLExecDirect stop at first DONE, so it do not see the
> ERROR token and
> > returns SQL_SUCCESS.
>
> Does Microsoft's version stop at the first DONEINPROC?
>
Yes. Assume that server return large text/image data on select, client
cannot cache all rows so it has to stop at first recordset (I tested and
it stops even if recordset is empty).
> I don't understand how SQLExecDirect() can (correctly) stop before
> DONEPROC. How is the application expected to learn of the ERROR?
>
I think on next SQLMoreResults or perhaps on SQLFetch (I didn't test
it)...
>From lang_error test calling SQLExecDirect("SELECT
DATEADD(dd,-100000,getdate())") return SQL_ERROR.
freddy77
More information about the FreeTDS
mailing list