BUG: Dbreadtext Incorrectly Processes All Result Sets

ID: Q173856


The information in this article applies to:
  • Microsoft SQL Server version 6.5


SYMPTOMS

BUG #: 16825 (Windows: 6.50)

The SQL Server Books Online says the following:

To read successive chunks of the same SQLTEXT or SQLIMAGE value, call dbreadtext until it returns 0 (end of row).
Zero (0) indicates the end of the row, and -1 indicates that an error occurred.

Sending the following batch results in three distinct result sets:

   select 1
   select pr_info from pub_info where pub_id = '0736'
   select 3 
If you loop through dbresults, the first result set returns an integer column. You can use dbcoltype and dbnumcol to determine the column information and to help set up the proper dbbind and retrieve the integer column data. Your code will process all rows with dbnextrow calls and then call dbresults to begin processing the second result set.

The second result set contains the text column. The dbreadtext calls to process the results properly returns (0) to signal the end of the text row. However, by this time, the dbreadtext also processes the third result set. The next call to dbresults returns NO_MORE_RESULTS.


WORKAROUND

To work around this problem, do either of the following:

  • Make sure the text result is the final result set on the batch.


  • -or-

  • Use the dbdata and dbnextrow functions to process the text where possible.



STATUS

Microsoft has confirmed this to be a problem in SQL Server version 6.5. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Additional query words:

Keywords : kbprg SSrvProg kbbug6.50
Version : winnt:6.5
Platform : winnt
Issue type : kbbug


Last Reviewed: December 14, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.