[freetds] dbresults() behavior different between RH7.3 and CentOS4

James K. Lowden jklowden at freetds.org
Mon Oct 23 08:41:17 EDT 2006


David Chang wrote:
> Thanks for the update.  

My pleasure.  Thank you, too.  You found a bug, described it clearly,
showed how it was a problem.  That led me to look at it carefully.  I had
a few hours on Saturday and thought I'd at least try to figure out what
was going on.  I'm not sure the fix was completely correct, but it was
easier than I expected and it doesn't break any of our test.  With luck it
will turn out to be right.  

> At least the behavior is the same as Microsoft 
> DB-Library now.  That's the best one can hope for.

If there's any discrepancy with Sybase's implementation, that would be a
bug, too.  Until it's documented, of course.  

> In terms of the TDS protocol, I found out that my freetds.conf file is
> set  to 8.0.  Do you think if I change it to 4.2 that results processing
> would be  any different?  

No.  This problem was not related to the protocol layer; it was a function
of how db-lib uses libtds.  

Basically, db-lib was being too aggressive.  When you called
dbretstatus(), it caused libtds to read all "post results": return status
and output parameters, until it saw a DONE packet, signifying that the
server had no more to send.  While looking for output parameters, it was
discarding return status packets.  

Regards, 

--jkl


More information about the FreeTDS mailing list