ステートメントのバッチ
Transact-SQL ステートメントのバッチには 2 つ以上のステートメントが含まれ、各ステートメントがセミコロン (;) で区切られます。これらのステートメントは 1 つの文字列として構築され、SQLExecDirect や SQLPrepare に渡されます。次に例を示します。
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 Native Client]Cursor type changed."