BUG: Dbreadtext Incorrectly Processes All Result Sets

ID: Q173856

The information in this article applies to:

BUG #: 16825 (Windows: 6.50)

SYMPTOMS

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:

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           : WINDOWS:6.5
Platform          : WINDOWS
Issue type        : kbbug

Last Reviewed: September 17, 1997