Compartilhar via


Objeto Recordset (ADO)

Representa todo o conjunto de registros de uma tabela base ou os resultados de um comando executado. A qualquer momento, o objeto recordset refere-se a apenas um único registro dentro do conjunto como o registro atual.

Observações

Você usa objetos Recordset para manipular dados de um provedor. Ao usar o ADO, você manipula dados quase inteiramente usando objetos recordset. Todos os objetos Recordset consistem em registros (linhas) e campos (colunas). Dependendo da funcionalidade com suporte do provedor, algumas métodos ou propriedades do Recordset podem não estar disponíveis.

ADODB. Recordset é o ProgID que deve ser usado para criar um recordset objeto. Aplicativos existentes que fazem referência ao ADOR desatualizado. O Recordset ProgID continuará funcionando sem recompilar, mas o novo desenvolvimento deve fazer referência ao ADODB. Conjunto de registros.

Há quatro tipos de cursor diferentes definidos no ADO:

  • de cursor dinâmico permite exibir adições, alterações e exclusões por outros usuários; permite todos os tipos de movimentação por meio do conjunto de registros que não dependem de indicadores; e permite indicadores se o provedor dá suporte a eles.

  • o cursor de conjunto de chaves Se comporta como um cursor dinâmico, exceto que ele impede que você veja registros que outros usuários adicionam e impede o acesso aos registros que outros usuários excluem. As alterações de dados de outros usuários ainda estarão visíveis. Ele sempre dá suporte a indicadores e, portanto, permite todos os tipos de movimentação por meio do Recordset.

  • de cursor estático fornece uma cópia estática de um conjunto de registros para você usar para localizar dados ou gerar relatórios; sempre permite indicadores e, portanto, permite todos os tipos de movimentação por meio do conjunto de registros . Adições, alterações ou exclusões por outros usuários não estarão visíveis. Esse é o único tipo de cursor permitido quando você abre um objeto recordset do lado do cliente.

  • de cursor somente para encaminhamento permite que você role apenas para frente pela do conjunto de registros. Adições, alterações ou exclusões por outros usuários não estarão visíveis. Isso melhora o desempenho em situações em que você precisa fazer apenas uma única passagem por um Recordset.

Defina a propriedade CursorType antes de abrir o Recordset para escolher o tipo de cursor ou passe um argumento CursorType com o método Open. Alguns provedores não dão suporte a todos os tipos de cursor. Verifique a documentação do provedor. Se você não especificar um tipo de cursor, o ADO abrirá um cursor somente para encaminhamento por padrão.

Se a propriedade CursorLocation estiver definida como adUseClient para abrir um Recordset, a propriedade UnderlyingValue em objetos Field não estará disponível no objeto recordset de retornado. Quando usado com alguns provedores (como o Provedor ODBC da Microsoft para OLE DB em conjunto com o Microsoft SQL Server), você pode criar objetos Recordset independentemente de um objeto Connection definido anteriormente passando uma cadeia de conexão com o método Open. O ADO ainda cria um objeto Connection, mas não atribui esse objeto a uma variável de objeto. No entanto, se você estiver abrindo vários objetos Recordset pela mesma conexão, deverá criar e abrir explicitamente um objeto Connection; isso atribui o objeto Connection a uma variável de objeto. Se você não usar essa variável de objeto ao abrir seus objetos Recordset, o ADO criará um novo objeto Connection para cada novo recordset, mesmo se você passar a mesma cadeia de conexão.

Você pode criar quantos objetos Recordset necessários.

Quando você abre um conjunto de registros , o registro atual é posicionado para o primeiro registro (se houver) e as propriedades bof e EOF são definidas como False. Se não houver registros, as configurações de propriedade BOF e EOF serão True.

Você pode usar os métodos MoveFirst, MoveLast, MoveNexte MovePrevious; o método Move; e as propriedades AbsolutePosition, AbsolutePagee Filter para reposicionar o registro atual, supondo que o provedor dê suporte à funcionalidade relevante. Os objetos Recordset somente para encaminhamento dão suporte apenas ao método MoveNext. Ao usar os métodos Mover para visitar cada registro (ou enumerar a do conjunto de registros), você pode usar as propriedades BOF e EOF para determinar se você se moveu além do início ou do fim do do conjunto de registros.

Antes de usar qualquer funcionalidade de um objeto Recordset, você deve chamar o método Supports no objeto para verificar se a funcionalidade tem suporte ou está disponível. Você não deve usar a funcionalidade quando o dá suporte método retorna falso. Por exemplo, você pode usar o método MovePrevious somente se Recordset.Supports(adMovePrevious) retornar True. Caso contrário, você receberá um erro, pois o recordset objeto pode ter sido fechado e a funcionalidade renderizada indisponível na instância. Se não houver suporte para um recurso no qual você está interessado, suporte retornará false também. Nesse caso, você deve evitar chamar a propriedade ou método correspondente no objeto recordset.

objetos do Recordset podem dar suporte a dois tipos de atualização: imediato e em lote. Na atualização imediata, todas as alterações nos dados são gravadas imediatamente na fonte de dados subjacente depois que você chama o método Update. Você também pode passar matrizes de valores como parâmetros com os métodos AddNew e Update e atualizar simultaneamente vários campos em um registro.

Se um provedor der suporte à atualização em lote, você poderá ter as alterações de cache do provedor em mais de um registro e transmiti-las em uma única chamada para o banco de dados com o método UpdateBatch. Isso se aplica às alterações feitas com os métodos AddNew, Updatee Delete. Depois de chamar o método UpdateBatch, você pode usar a propriedade Status para verificar se há conflitos de dados para resolvê-los.

Nota

Para executar uma consulta sem usar um objeto Command, passe uma cadeia de caracteres de consulta para o método Open de um objeto Recordset. No entanto, um objeto Command é necessário quando você deseja persistir o texto do comando e executá-lo novamente ou usar parâmetros de consulta.

A propriedade modo de rege as permissões de acesso.

A coleção Fields é o membro padrão do objeto Recordset. Como resultado, as duas instruções de código a seguir são equivalentes.

Debug.Print objRs.Fields.Item(0)  ' Both statements print   
Debug.Print objRs(0)              '  the Value of Item(0).  

Quando um objeto Recordset é passado entre processos, somente os valores de do conjunto de linhas são empacotados e as propriedades do objeto recordset são ignoradas. Durante o unmarshalling, o conjunto de linhas é descompactado em um objeto recordset recém-criado, que também define suas propriedades como os valores padrão.

O objeto Recordset é seguro para scripts.

Esta seção contém o tópico a seguir.

Consulte Também

do objeto de conexão (ADO)
da Coleção Fields (ADO)
da coleção Properties (ADO)
apêndice A : provedores