[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