Batch di istruzioni
Un batch di istruzioni Transact-SQL contiene due o più istruzioni, separate da punto e virgola (;) e incluse in una singola stringa passata a SQLExecDirect o SQLPrepare. Esempi:
SQLExecDirect(hstmt,
"SELECT * FROM Authors; SELECT * FROM Titles",
SQL_NTS);
I batch possono essere più efficienti rispetto all'invio separato delle istruzioni in quanto il traffico di rete viene spesso ridotto. Utilizzare SQLMoreResults per posizionarsi sul set di risultati successivo una volta completata l'operazione con il set di risultati corrente.
I batch possono essere sempre utilizzati quando gli attributi del cursore ODBC sono impostati sui valori predefiniti di un cursore forward only in sola lettura con dimensioni del set di righe pari a 1.
Se un batch viene eseguito quando si utilizzano cursori del server in SQL Server, questi ultimi vengono convertiti implicitamente in set di risultati predefiniti. SQLExecDirect o SQLExecute restituisce SQL_SUCCESS_WITH_INFO, mentre una chiamata a SQLGetDiagRec restituisce:
szSqlState = "01S02", pfNativeError = 0
szErrorMsg = "[Microsoft][SQL Server Native Server Native Client]Cursor type changed."