Freigeben über


Batches von Anweisungen

Ein Batch von Transact-SQL-Anweisungen enthält zwei oder mehr Anweisungen, die jeweils durch ein Semikolon (;) voneinander getrennt sind und innerhalb einer einzigen Zeichenfolge an SQLExecDirect oder SQLPrepare übergeben 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."

Siehe auch

Konzepte