Batches von Anweisungen
Ein Batch von Transact-SQL-Anweisungen enthält mindestens zwei Anweisungen, die jeweils durch ein Semikolon (;) voneinander getrennt sind und innerhalb einer einzigen Zeichenfolge an SQLExecDirect oder die SQLPrepare-Funktion übermittelt werden. Beispiel:
SQLExecDirect(hstmt,
"SELECT * FROM Authors; SELECT * FROM Titles",
SQL_NTS);
Batches können effizienter als das Senden getrennter Anweisungen sein, da der Netzwerkdatenverkehr dadurch meist reduziert wird. Verwenden Sie SQLMoreResults, damit der Cursor auf dem nächsten Resultset positioniert wird, sobald das aktuelle Resultset verarbeitet wurde.
Batches können immer dann verwendet werden, wenn die ODBC-Cursorattribute auf die Standardeinstellungen eines schreibgeschützten Vorwärtscursors mit der Rowsetgröße 1 festgelegt wurden.
Wenn ein Batch ausgeführt wird und Servercursor für SQL Server verwendet werden, dann wird der Servercursor implizit in ein Standardresultset umgewandelt. SQLExecDirect oder SQLExecute geben SQL_SUCCESS_WITH_INFO zurück, und ein Aufruf von SQLGetDiagRec gibt Folgendes zurück:
szSqlState = "01S02", pfNativeError = 0
szErrorMsg = "[Microsoft][SQL Server Native Server Native Client]Cursor type changed."