Compartilhar via


Método NextRecordset (ADO)

Aplica-se ao: Access 2013, Office 2013

Limpa o objeto Recordset atual e retorna o próximo Recordset avançando por uma série de comandos.

Sintaxe

Conjunto de registroset2 = recordset1. NextRecordset(RecordsAffected )

Valor de retorno

Retorna um objeto Recordset. No modelo de sintaxe, recordset1 e recordset2 podem ser o mesmo objeto Recordset ou você pode utilizar objetos separados. Ao utilizar objetos Recordset separados, redefinir a propriedade ActiveConnection no Recordset original (recordset1) depois que NextRecordset for chamado gerará um erro.

Parâmetros

Parâmetro Descrição
Recordsaffected Opcional. Uma variável Long para a qual o provedor retorna o número de registros que a operação atual afetou.

Observação

Este parâmetro retorna apenas o número de registros afetados por uma operação; ele não retorna uma contagem dos registros de uma instrução select utilizada para gerar o Recordset.

Comentários

Utilize o método NextRecordset para retornar os resultados do próximo comando em uma instrução de comando composta ou de um procedimento armazenado que retorna vários resultados. Se você abrir um objeto Recordset com base em uma instrução de comando composta (por exemplo, "SELECT * FROM table1;SELECT * FROM table2") utilizando o método Execute em um Command ou o método Open em um Recordset, o ADO executará apenas o primeiro comando e retornará os resultados para recordset. Para acessar os resultados dos comandos subsequentes na instrução, chame o método NextRecordset.

Desde que existam resultados adicionais e que o Recordset que contém as instruções compostas não esteja desconectado ou conduzido pelos limites do processo, o método NextRecordset continuará a retornar objetos Recordset. Se um comando que retorne linhas for executado com êxito mas não retornar registros, o objeto Recordset retornado estará aberto mas vazio. Teste esse caso verificando se as propriedades BOF e EOF são ambas True. Se um comando que não retorne linhas for executado com êxito, o objeto Recordset retornado estará fechado, o que pode ser verificado pelo teste da propriedade State no Recordset. Quando não mais existirem resultados, recordset será definido como Nothing.

O método NextRecordset não está disponível em um objeto Recordset desconectado, em que ActiveConnection foi definido como Nothing (no Microsoft Visual Basic) ou NULL (em outras linguagens).

Se uma edição estiver em andamento durante o modo de atualização imediata, chamar o método NextRecordset gera um erro; chame primeiramente o método Update ou CancelUpdate.

Para passar parâmetros para mais de um comando na instrução composta por meio do preenchimento da coleção Parameters ou passando-se uma matriz com a chamada a Open ou Execute original, os parâmetros devem estar na mesma ordem na coleção ou matriz que seus respectivos comandos na série de comandos. Primeiro é necessário terminar de ler todos os resultados antes de ler os valores do parâmetro de saída.

O provedor de banco de dados OLE determina quando cada comando em uma instrução composta é executado. O Microsoft OLE DB Provider for SQL Server, por exemplo, executa todos os comandos em um lote após o recebimento da instrução composta. Os Recordsets resultantes serão simplesmente retornados quando você chamar NextRecordset.

No entanto, outros provedores poderão executar o próximo comando em uma instrução somente depois que NextRecordset for chamado. Para esses provedores, se você fechar explicitamente o objeto Recordset antes de percorrer por etapas a instrução de comando inteira, o ADO nunca executará os comandos restantes.