Hi,
I traced TDS /Sybase's Tabulated Data Stream/ traffic because some Infomaker reports are not producing the result they should. The symptom is the server indicates that the query is finished although it is not. Let's say from 1000 records it returns only 230. A consecutive run returns more data let's say another 300 or so, and so on till all the needed 1000 record is provided. From there on the report returns the correct number of records for every consecutive run till the data in the cache on the server is owerwritten.
According to the Sybase TDS specs,
http://www.sybase.com/content/1040983/Sybase-tds38-102306.pdf
the server returns a TDS_DONE /hex FD/ after the transaction is finished followed by Status with 2 bytes and followed by a two byte TranState. The manual said this about the Status: " This field is a two-byte, unsigned integer and is a bit field indicating the completion status:
0x0000 - TDS_DONE_FINAL success
0x0001 - TDS_DONE_MORE more records to come
0x0002 - TDS_DONE_Error indicates an error on the current command
0x0004 - TDS_DONE_INXACT transaction is in progress for the current request
0x0008 - TDS_DONE_PROC it is done from a stored procedure
0x0010 - TDS_DONE_COUNT the count argument is valid
0x0020 - TDS_DONE_ATTN acknowledging an Attention command
0x0040 - TDS_DONE_EVENT this done was generated as part of an event notification.
Here are the hex bytes starting with the TDS_DONE FD in the capture I see:
FD 20 00 02 00 16 01 00 00
So the Status is: 20 00
and the TranState is: 02 00
So, my question is what these two bytes indicate here ?
Thanks ahead,
János