Lotes de instruções

Um lote de instruções Transact-SQL contém duas ou mais instruções, separadas por um ponto-e-vírgula (;), criadas em uma única cadeia de caracteres passada para SQLExecDirect ou SQLPrepare. Por exemplo:

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

Os lotes podem ser mais eficientes do que enviar instruções separadamente porque o tráfego de rede costuma ser reduzido. Use SQLMoreResults para se posicionar quanto ao próximo conjunto de resultados quando concluído o conjunto de resultados atual.

Os lotes sempre podem ser usados quando os atributos de cursor ODBC são definidos como os padrões de um cursor de somente encaminhamento, somente leitura, com um tamanho do conjunto de linhas igual a 1.

Caso um lote seja executado durante o uso de cursores de servidor no SQL Server, o cursor de servidor é convertido implicitamente em um conjunto de resultados padrão. SQLExecDirect ou SQLExecute retornam SQL_SUCCESS_WITH_INFO, e uma chamada para SQLGetDiagRec retorna:

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

Consulte também

Conceitos