Cursors > Results Retrieval > Handling Multiple Result Sets
 
Handling Multiple Result Sets
A result set is returned at fetch time for each SQL select statement. Sybase and MS SQL Server return several result sets for a stored procedure call.
When the target RDBMS allows queries to be sent in batches, there may exist several successive result sets to be fetched. In this case, Rogue Wave DB Link retrieves the first set, then returns the value IlFalse from the call to IldRequest::hasTuple.
To make sure that there is no other result set to be fetched, you must issue another call to IldRequest::fetch and then a call to IldRequest::hasTuple, as shown in the following example:
{
cout << "\tResult sets: " << endl;
while (request->fetch().hasTuple()) {
if (request->getColCount()) {
IldPrintTuple(request, IldNames);
IldPrintTuple(request, IldSeparators);
do {
IldPrintTuple(request);
} while (request->fetch().hasTuple());
}
else {
IlInt count = 0;
if ((count = request->getStatus()) > 0)
cout << count << " modified row"
<< ((count > 1) ? "s" : "") << endl;
}
cout << endl;
}
}

Version 5.8
Copyright © 2014, Rogue Wave Software, Inc. All Rights Reserved.