Objeto Recordset ADO

Exemplo

GetRows
Este exemplo demonstra como usar o método GetRows.

Objeto Recordset

O objeto Recordset do ADO é usado para conter um conjunto de registros de uma tabela de banco de dados. Um objeto Recordset é composto por registros e colunas (campos).

No ADO, este objeto é o mais importante e mais usado para operar dados de banco de dados.

ProgID

set objRecordset = Server.CreateObject("ADODB.recordset")

Quando você abre um Recordset pela primeira vez, o ponteiro do registro atual aponta para o primeiro registro, enquanto as propriedades BOF e EOF são False. Se não houver registros, as propriedades BOF e EOF são True.

O objeto Recordset pode suportar dois tipos de atualizações:

  • Atualização imediata - Assim que o método Update for chamado, todas as alterações são escritas imediatamente no banco de dados.
  • Atualização em lote - O provider armazena várias alterações e, em seguida, usa o método UpdateBatch para transmitir essas alterações para o banco de dados.

No ADO, foram definidos 4 tipos diferentes de cursores (pontos de interrogação):

  • Cursor dinâmico - Permite que você veja as adições, alterações e exclusões feitas por outros usuários
  • Cursor de conjunto de chaves - Semelhante ao cursor dinâmico, mas você não pode ver as adições feitas por outros usuários e ele impede que você acesse registros deletados por outros usuários. As alterações de dados feitas por outros usuários ainda são visíveis.
  • Cursor estático - fornece uma cópia estática do conjunto de registros, usada para encontrar dados ou gerar relatórios. Além disso, as adições, alterações e exclusões feitas por outros usuários serão invisíveis. Quando você abre um objeto Recordset do cliente, este é o único tipo de cursor permitido.
  • Cursor para frente - permite que você role para frente no Recordset. Além disso, as adições, alterações e exclusões feitas por outros usuários serão invisíveis.

O tipo de cursor pode ser definido através da propriedade CursorType ou do parâmetro CursorType no método Open.

Notas:Não todos os provedores (providers) suportam todos os métodos e propriedades do objeto Recordset.

Atributo

Atributo Descrição
AbsolutePage Definir ou retornar um valor que especifica a página do objeto Recordset.
AbsolutePosition Definir ou retornar um valor que especifica a posição de ordem (posição sequencial) do registro atual no objeto Recordset.
ActiveCommand Retornar o objeto Command associado ao objeto Recordset.
ActiveConnection Se a conexão estiver fechada, definir ou retornar a definição da conexão. Se a conexão estiver aberta, definir ou retornar o objeto Connection atual.
BOF Retorna true se a posição do registro atual estiver antes do primeiro registro, caso contrário retorna false.
Bookmark Definir ou retornar um marcador. Este marcador salva a posição do registro atual.
CacheSize Definir ou retornar o número de registros que podem ser armazenados em cache.
CursorLocation Definir ou retornar a localização do serviço de cursor.
CursorType Definir ou retornar o tipo de cursor de um objeto Recordset.
DataMember Definir ou retornar o nome do membro de dados a ser recuperado do objeto referenciado pela propriedade DataSource.
DataSource Especificar um objeto que contém os dados a serem representados como objeto Recordset.
EditMode Retornar o estado de edição do registro atual.
EOF Retorna true se a posição do registro atual estiver após o último registro, caso contrário retorna false.
Filter Retornar um filtro para os dados do objeto Recordset.
Index Definir ou retornar o nome do índice atual do objeto Recordset.
LockType Definir ou retornar um valor que especifica o tipo de trava que pode ser especificado ao editar um registro do Recordset.
MarshalOptions Definir ou retornar um valor que especifica quais registros são retornados para o servidor.
MaxRecords Define ou retorna o número máximo de registros que podem ser retornados por um Recordset de uma consulta.
PageCount Retorna o número de páginas de dados em um objeto Recordset.
PageSize Define ou retorna o número máximo de registros permitidos em uma única página do objeto Recordset.
RecordCount Retorna o número de registros em um objeto Recordset.
Sort Define ou retorna um ou mais nomes de campo usados como base para a ordenação do Recordset.
Source Define um valor de string, uma referência a um objeto Command ou retorna um valor de string que indica a fonte de dados do objeto Recordset.
State Retorna um valor que descreve se o objeto Recordset está aberto, fechado, conectando, executando ou recuperando dados.
Status Retorna o estado atual do registro em uma operação em lote ou em grande escala.
StayInSync Define ou retorna se a referência para os registros filhos deve mudar quando a posição do registro pai muda.

Método

Método Descrição
AddNew Cria um novo registro.
Cancel Desfaz uma execução.
CancelBatch Desfaz uma atualização em lote.
CancelUpdate Desfaz as alterações feitas em um registro do objeto Recordset.
Clone Cria uma cópia de um Recordset existente.
Close Fecha um Recordset.
CompareBookmarks Compara dois bookmarks.
Delete Exclui um registro ou um grupo de registros.
Find Procura um registro em um Recordset que satisfaça uma condição específica.
GetRows Copia vários registros de um objeto Recordset para um array bidimensional.
GetString Retorna o Recordset como uma string.
Move Move o ponteiro do registro no objeto Recordset.
MoveFirst Move o ponteiro do registro para o primeiro registro.
MoveLast Move o ponteiro do registro para o último registro.
MoveNext Move o ponteiro do registro para o próximo registro.
MovePrevious Move o ponteiro do registro para o registro anterior.
NextRecordset Limpa o objeto Recordset atual executando uma série de comandos e retorna o próximo Recordset.
Open Abre um elemento de banco de dados, que pode fornecer acesso aos registros da tabela, resultados de consultas ou Recordset salvo.
Requery Atualiza os dados no Recordset, reexecutando a consulta que o objeto se baseia.
Resync Atualiza os dados no Recordset atual, recarregando-os do banco de dados original.
Save Salva o objeto Recordset para um objeto file ou Stream.
Seek Procura pelos índices do Recordset para rapidamente localizar uma linha que coincide com um valor específico e torná-la a linha atual.
Supports Retorna um valor booleano que define se o objeto Recordset suporta um tipo específico de funcionalidade.
Update Salva todas as mudanças feitas em um único registro no objeto Recordset.
UpdateBatch Salva todas as mudanças feitas em todos os Recordset no banco de dados. Use em modo de atualização em lote.

Eventos

Nota: Você não pode manipular eventos usando VBScript ou JScript (apenas os idiomas Visual Basic, Visual C++ e Visual J++ podem manipular eventos).

Eventos Descrição
EndOfRecordset É acionado quando tentar mover para uma linha além do final do Recordset.
FetchComplete É acionado quando todos os registros na operação assíncrona forem lidos.
FetchProgress É acionado periodicamente durante a operação assíncrona, relatando quantos registros foram lidos.
FieldChangeComplete É acionado após mudar o valor do objeto Field.
MoveComplete É acionado após mudar a posição atual no Recordset.
RecordChangeComplete É acionado após mudar um registro.
RecordsetChangeComplete É acionado após mudar o Recordset.
WillChangeField É acionado antes de mudar o valor do objeto Field.
WillChangeRecord É acionado antes de mudar um registro.
WillChangeRecordset É acionado antes de mudar o Recordset.
WillMove É acionado antes de mudar a posição atual no Recordset.

Conjunto

Conjunto Descrição
Fields Indica o número de objetos Field no objeto Recordset atual.
Properties Contém todos os objetos Property dos objetos Recordset.

Atributos do conjunto Fields

Atributo Descrição
Count

Retorna o número de itens no conjunto fields. Começa com 0.

Exemplo:

	countfields = rs.Fields.Count
	
Item (nome_item/número)

Retorna um item específico do conjunto fields.

Exemplo:

	itemfields = rs.Fields.Item(1)
	ou	
	itemfields = rs.Fields.Item("Name")
	

Atributos do conjunto Properties

Atributo Descrição
Count

Retorna o número de itens no conjunto properties. Começa com 0.

Exemplo:

	countprop = rs.Properties.Count
	
Item (nome_item/número)

Retorna um item específico do conjunto properties.

Exemplo:

	itemprop = rs.Properties.Item(1)
	ou
	itemprop = rs.Properties.Item("Name")