Compartilhar via


Método NextRecordset (ADO)

Limpa o objeto Recordset atual e retorna o próximo Recordset seguindo uma série de comandos.

Sintaxe

  
Set recordset2 = recordset1.NextRecordset(RecordsAffected )  

Valor retornado

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

Parâmetros

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

Esse parâmetro retorna apenas o número de registros afetados por uma operação. Não retorna uma contagem de registros de uma instrução Select usada para gerar o Recordset.

Comentários

Use 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"), usando o método Execute em um Command ou o método Open em um Recordset, a ADO executará apenas o primeiro comando e retornará os resultados para o Recordset. Para acessar os resultados dos comandos subsequentes na instrução, chame o método NextRecordset.

Contanto que haja resultados adicionais e que o Recordset que contém as instruções compostas não esteja desconectado ou em marshaling entre os limites do processo, o método NextRecordset continuará a retornar objetos Recordset. Se um comando de retorno de linha 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 True. Se um comando que não retorna linhas for executado com êxito, o objeto Recordset retornado será fechado, o que você pode verificar testando a propriedade State no Recordset. Quando não houver mais resultados, o 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 no modo de atualização imediata, chamar o método NextRecordset gerará um erro. Chame primeiro o método Update ou CancelUpdate.

Para passar parâmetros para mais de um comando na instrução composta, preenchendo a coleção Parameters ou passando uma matriz com a chamada original Open ou Execute, os parâmetros devem estar na mesma ordem na coleção ou matriz dos respectivos comandos na série de comandos. Você deve concluir a leitura de todos os resultados, antes de ler os valores do parâmetro de saída.

O provedor OLE DB determina quando cada comando em uma instrução composta será executado. O Provedor Microsoft OLE DB para SQL Server, por exemplo, executa todos os comandos em um lote, ao receber a instrução composta. Os Recordsets resultantes são retornados ao 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 toda a instrução de comando, a ADO nunca executará os comandos restantes.

Aplica-se A

Objeto Recordset (ADO)

Consulte Também

Exemplo do método NextRecordset (VB)
Exemplo do método NextRecordset (VC++)