Lotes de instrucciones
Un lote de instrucciones Transact-SQL contiene dos o más instrucciones, separadas por un punto y coma (;), que se integran en una única cadena que se pasa a SQLExecDirect o SQLPrepare Function. Por ejemplo:
SQLExecDirect(hstmt,
"SELECT * FROM Authors; SELECT * FROM Titles",
SQL_NTS);
Los lotes pueden ser más eficaces que el envío de instrucciones por separado porque el tráfico de red suele ser reducido. Use SQLMoreResults para colocarse en el siguiente conjunto de resultados cuando finalice con el conjunto de resultados actual.
Siempre pueden usarse lotes cuando los atributos de cursor de ODBC se establecen en los valores predeterminados de un cursor de solo avance y de solo lectura cuyo conjunto de filas tiene un tamaño de 1.
Si se ejecuta un lote al utilizar los cursores del servidor en SQL Server, el cursor del servidor se convierte implícitamente en un conjunto de resultados predeterminado. SQLExecDirect o SQLExecute devuelve SQL_SUCCESS_WITH_INFO, y una llamada a SQLGetDiagRec devuelve:
szSqlState = "01S02", pfNativeError = 0
szErrorMsg = "[Microsoft][SQL Server Native Server Native Client]Cursor type changed."