Creating Rowsets with ICommand::Execute
For rowsets created by using the ICommand::Execute method, the properties that you want in the resulting rowset can constrain the text of the command. This is especially critical for consumers that support dynamic command text.
The SQL Native Client OLE DB provider cannot use Microsoft SQL Server cursors to support the multiple-rowset results generated by many commands. If a consumer requests a rowset requiring SQL Server cursor support, an error occurs if the command text generates more than a single rowset as its result. For more information, see Commands Generating Multiple-Rowset Results.
Scrollable SQL Native Client OLE DB provider rowsets are supported by SQL Server cursors. SQL Server imposes limitations on cursors that are sensitive to changes made by other users of the database. Specifically, the rows in some cursors cannot be ordered, and trying to create a rowset by using a command that contains an SQL ORDER BY clause can fail. For more information, see Rowsets and SQL Server Cursors.