Clone (método) (ADO)

Crea un objeto Recordset duplicado a partir de un objeto Recordset existente. Opcionalmente, especifica que el clon sea de solo lectura.

Sintaxis

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Valor devuelto

Devuelve una referencia de objeto Recordset.

Parámetros

rstDuplicate
Variable de objeto que identifica el objeto Recordset duplicado que se va a crear.

rstOriginal
Variable de objeto que identifica el objeto Recordset que se va a duplicar.

LockType
Opcional. Valor LockTypeEnum que especifica el tipo de bloqueo del objeto Recordset original o un objeto Recordset de solo lectura. Los valores válidos son adLockUnspecified o adLockReadOnly.

Comentarios

Use el método Clone para crear varios objetos Recordset duplicados, especialmente si desea mantener más de un registro actual en un conjunto determinado de registros. El uso del método Clone es más eficaz que crear y abrir un nuevo objeto Recordset que usa la misma definición que el original.

La propiedad Filter del objeto Recordset original, si existe, no se aplicará al clon. Establezca la propiedad Filter del nuevo objeto Recordset para filtrar los resultados. La manera más sencilla de copiar cualquier valor Filter existente es asignarlo directamente, como se indica a continuación.

rsNew.Filter = rsOriginal.Filter  

El registro actual de un clon recién creado se establece en el primer registro.

Los cambios realizados en un objeto Recordset son visibles en todos sus clones independientemente del tipo de cursor. Sin embargo, después de ejecutar Requery en el Recordset original, los clones ya no se sincronizarán con el original.

Cerrar el Recordset original no cierra sus copias, ni cierra una copia cierra el original o ninguna de las demás copias.

Solo puede clonar un objeto Recordset que admita marcadores. Los valores de marcador son intercambiables; es decir, una referencia de marcador de un objeto Recordset hace referencia al mismo registro en cualquiera de sus clones.

Algunos eventos Recordset que se desencadenan también se producirán en todos los clones del objeto Recordset. Sin embargo, dado que el registro actual puede diferir entre los objetos Recordsets clonados, es posible que los eventos no sean válidos para el clon. Por ejemplo, si cambia un valor de un campo, se producirá un evento WillChangeField en el objeto Recordset modificado y en todos los clones. El parámetro Fields del evento WillChangeField de un objeto Recordset clonado (donde no se hizo el cambio) hará referencia a los campos del registro actual del clon, que puede ser un registro diferente al registro actual del objeto Recordset original donde se produjo el cambio.

En la tabla siguiente se proporciona una lista completa de todos los eventos del Recordset. Indica si son válidos y desencadenados para los clones del conjunto de registros generados mediante el método Clone.

Evento ¿Se desencadenan en clones?
EndOfRecordset No
FetchComplete No
FetchProgress No
FieldChangeComplete
MoveComplete No
RecordChangeComplete
RecordsetChangeComplete No
WillChangeField
WillChangeRecord
WillChangeRecordset No
WillMove No

Se aplica a

Objeto de conjunto de registros (ADO)

Consulte también

Ejemplo del método Clone (VB)
Ejemplo del método Clone (VBScript)
Ejemplo del método Clone (VC ++)