Método clone (ADO)
Aplica-se ao: Access 2013, Office 2013
Cria um objeto Recordset duplicado a partir de um objeto Recordset existente. Opcionalmente, especifica que o clone seja somente leitura.
Sintaxe
DefinarstDuplicate = rstOriginal. Clone (LockType)
Valor de retorno
Retorna uma referência do objeto Recordset.
Parâmetros
Parâmetro | Descrição |
---|---|
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 você quiser mais de um registro atual em um determinado conjunto de registros. A utilização do método Clone é mais eficiente do que a criação e abertura de um novo objeto Recordset com a mesma definição que o original.
A propriedade Filter do Recordset original, se existir, não será aplicada ao clone. Defina a propriedade Filter do novo Recordset para filtrar os resultados. A forma mais simples de copiar qualquer valor de Filter existente é atribuí-lo diretamente, como a seguir:
O registro atual de um clone recém-criado é definido para o primeiro registro.
As alterações efetuadas em um objeto Recordset são visíveis em todos os seus clones, independentemente do tipo do cursor. No entanto, depois de executar Requery no Recordset original, os clones não mais estarão sincronizados com o original.
Fechar o Recordset original não fecha suas cópias, assim como fechar uma cópia não fecha o original e nenhuma das demais cópias.
É possível clonar apenas um objeto Recordset que suporte indicadores. Os valores de indicadores são intercambiáveis; isto é, uma referência de indicador de um objeto Recordset se refere ao mesmo registro em qualquer um de seus clones.
Alguns eventos Recordset que são disparados também o serã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 o valor de um campo, ocorrerá um evento WillChangeField 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) irá simplesmente se referir aos campos do registro atual do clone, que pode ser um registro diferente do registro atual do Recordset original onde a alteração ocorreu.
A tabela a seguir fornece uma lista completa de todos os eventos de Recordset e indica se eles são válidos e disparados para quaisquer clones de recordset gerados utilizando-se o método Clone.
Evento |
Disparado nos clones? |
---|---|
Não |
|
Não |
|
Não |
|
Sim |
|
Não |
|
Sim |
|
Não |
|
Sim |
|
Sim |
|
Não |
|
Não |