Batches can be more efficient than submitting statements separately because network traffic is often reduced. Use SQLMoreResults to get positioned on the next result set when finished with the current result set.

Batches can always be used when the ODBC cursor attributes are set to the defaults of a forward-only, read-only cursor with a rowset size of 1.

If a batch is executed when using server cursors against SQL Server, the server cursor is implicitly converted to a default result set. SQLExecDirect or SQLExecute return SQL_SUCCESS_WITH_INFO, and a call to SQLGetDiagRec returns: