Freigeben über


Batches von Anweisungen

Ein Batch von Transact-SQL-Anweisungen enthält zwei oder mehr Anweisungen, getrennt durch ein Semikolon (;), in eine einzelne Zeichenfolge integriert, die an SQLExecDirect oder SQLPrepare Function übergeben wird. Beispiel:

SQLExecDirect(hstmt,   
    "SELECT * FROM Authors; SELECT * FROM Titles",  
    SQL_NTS);  

Batches können effizienter sein, als Anweisungen separat zu übermitteln, da der Netzwerkdatenverkehr häufig reduziert wird. Verwenden Sie SQLMoreResults , um die Position im nächsten Resultset abzurufen, wenn sie mit dem aktuellen Resultset fertig gestellt wurde.

Batches können immer verwendet werden, wenn die ODBC-Cursorattribute auf die Standardwerte eines vorwärtsgeschützten, schreibgeschützten Cursors mit einer Rowsetgröße von 1 festgelegt werden.

Wenn beim Verwenden von Servercursorn für SQL Server ein Batch ausgeführt wird, wird der Servercursor implizit in einen Standardergebnissatz konvertiert. 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

Ausführen von Anweisungen (ODBC)