ステートメントのバッチ

Transact-SQL ステートメントのバッチには 2 つ以上のステートメントが含まれ、各ステートメントがセミコロン (;) で区切られます。これらのステートメントは 1 つの文字列として構築され、SQLExecDirectSQLPrepare に渡されます。次に例を示します。

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

バッチでは、通常、ネットワーク トラフィックが削減されるので、複数のステートメントを個別に送信するよりも効率的になる可能性があります。現在の結果セットが完了したときに、次の結果セットに位置を設定するには、SQLMoreResults を使用します。

行セットのサイズが 1 になっている、順方向専用かつ読み取り専用のカーソルの既定値に ODBC カーソル属性が設定されている場合は、常にバッチを使用できます。

SQL Server に対してサーバー カーソルを使用しているときにバッチを実行すると、サーバー カーソルが暗黙的に既定の結果セットに変換されます。SQLExecDirect または SQLExecute からは SQL_SUCCESS_WITH_INFO が返されるので、SQLGetDiagRec を呼び出すと次の結果が返されます。

szSqlState = "01S02", pfNativeError = 0
szErrorMsg = "[Microsoft][SQL Server Native Server Native Client]Cursor type changed."