Compartir a través de


Lotes de declaraciones

Un lote de instrucciones Transact-SQL contiene dos o más instrucciones, separadas por punto y coma (;), integradas en una sola cadena pasada a SQLExecDirect o a la función SQLPrepare. Por ejemplo:

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

Los lotes pueden ser más eficaces que enviar instrucciones por separado porque a menudo se reduce el tráfico de red. Use SQLMoreResults para colocarse en el siguiente conjunto de resultados cuando termine con el conjunto de resultados actual.

Los lotes siempre se pueden usar cuando los atributos del cursor ODBC se establecen en los valores predeterminados de un cursor de solo avance y de solo lectura con un tamaño de conjunto de filas de 1.

Si se ejecuta un lote cuando se usan cursores de servidor en SQL Server, el cursor del servidor se convierte implícitamente en un conjunto de resultados predeterminado. SQLExecDirect o SQLExecute devuelven 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."  

Véase también

Ejecutar instrucciones (ODBC)