Partilhar via


Método Clone (ADO)

Cria um objeto Recordset duplicado com base em um objeto Recordset existente. Opcionalmente, especifica que o clone seja somente leitura.

Sintaxe

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Valor retornado

Retorna uma referência de objeto Recordset.

Parâmetros

rstDuplicate
Uma variável de objeto que identifica o objeto Recordset duplicado a ser criado.

rstOriginal
Uma variável de objeto que identifica o objeto Recordset a ser duplicado.

LockType
Opcional. Um valor LockTypeEnum que especifica o tipo de bloqueio do Recordset original ou um Recordset somente leitura. Os valores válidos são adLockUnspecified ou adLockReadOnly.

Comentários

Use o método Clone para criar vários objetos Recordset duplicados, especialmente se desejar manter mais de um registro atual em determinado conjunto de registros. O uso do método Clone é mais eficiente do que criar e abrir um novo objeto Recordset que usa a mesma definição do original.

A propriedade Filter do Recordset original, se houver, não será aplicada ao clone. Defina a propriedade Filter do novo Recordset para filtrar os resultados. A maneira mais simples de copiar qualquer valor de Filter existente é atribuí-lo diretamente, conforme mostrado a seguir.

rsNew.Filter = rsOriginal.Filter  

O registro atual de um clone recém-criado é definido como o primeiro registro.

As alterações feitas em um objeto Recordset são visíveis em todos os clones, independentemente do tipo de cursor. No entanto, depois de executar Requery no Rercordsetoriginal, os clones não serão mais sincronizados com o original.

O fechamento do Recordset original não fecha as cópias dele, nem o fechamento de uma cópia fecha o original ou uma das outras cópias.

Você só pode clonar um objeto Recordset que dá suporte a indicadores. Os valores de indicadores são intercambiáveis, ou seja, uma referência de indicador de um objeto Recordset refere-se ao mesmo registro em um dos respectivos clones.

Alguns eventos do Recordset que são disparados também ocorrerão em todos os clones do Recordset. No entanto, como o registro atual pode ser diferente entre os Recordsets clonados, os eventos podem não ser válidos para o clone. Por exemplo, se você alterar um valor de um campo, um evento WillChangeField ocorrerá no Recordset alterado e em todos os clones. O parâmetro Fields do evento WillChangeField de um Recordset clonado (em que a alteração não foi feita) vai se referir aos campos do registro atual do clone, que pode ser um registro diferente do registro atual do Recordset original em que a alteração ocorreu.

A tabela a seguir fornece uma listagem completa de todos os eventos do Recordset. Ela indica se eles são válidos e disparados para os clones de conjunto de registros gerados com o método Clone.

Evento Disparado em clones?
EndOfRecordset Não
FetchComplete No
FetchProgress Não
FieldChangeComplete Yes
MoveComplete Não
RecordChangeComplete Yes
RecordsetChangeComplete No
WillChangeField Yes
WillChangeRecord Yes
WillChangeRecordset No
WillMove No

Aplica-se A

Objeto Recordset (ADO)

Consulte Também

Exemplo do método Clone (VB)
Exemplo do método Clone (VBScript)
Exemplo do método Clone (VC++)