Partilhar via


Método Clone (ADO)

Cria um objeto Recordset duplicado de 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 recordset objeto a ser duplicado.

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

Observações

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

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

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 de conjunto de registrosoriginal, os clones não serão mais sincronizados com o original.

Fechar o conjunto de registros original não fecha suas cópias nem fecha uma cópia fechando o original ou qualquer uma das outras cópias.

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

Alguns eventos de 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 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) se referirá aos campos do registro atual do clone, que podem ser um registro diferente do registro atual do conjunto de registros de original em que a alteração ocorreu.

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

Acontecimento Disparado em clones?
EndOfRecordset Não
FetchComplete Não
FetchProgress Não
FieldChangeComplete Sim
MoveComplete Não
RecordChangeComplete Sim
RecordsetChangeComplete Não
WillChangeField Sim
WillChangeRecord Sim
WillChangeRecordset Não
WillMove Não

Aplica-se a

do objeto Recordset (ADO)

Consulte Também

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