Metodo Clone (ADO)
Crea un oggetto Recordset duplicato da un oggetto Recordset esistente. Facoltativamente, specifica che il clone deve essere di sola lettura.
Sintassi
Set rstDuplicate = rstOriginal.Clone (LockType)
Valore restituito
Restituisce un riferimento all'oggetto Recordset.
Parametri
rstDuplicate
Variabile oggetto che identifica l'oggetto Recordset duplicato da creare.
rstOriginal
Variabile oggetto che identifica l'oggetto Recordset duplicato da creare.
LockType
facoltativo. Valore LockTypeEnum che specifica il tipo di blocco del Recordset originale o un Recordset di sola lettura. I valori validi sono adLockUnspecified o adLockReadOnly.
Osservazioni
Usare il metodo Clone per creare più oggetti Recordset duplicati, soprattutto se si desidera mantenere più record correnti in un determinato set di record. L'utilizzo del metodo Clone è più efficiente rispetto alla creazione e all'apertura di un nuovo oggetto Recordset che usa la stessa definizione dell'originale.
La proprietà Filter del Recordset originale, se presente, non verrà applicata al clone. Impostare la proprietà Filter del nuovo Recordset per filtrare i risultati. Il modo più semplice per copiare qualsiasi valore Filter esistente consiste nell'assegnarlo direttamente, come indicato di seguito.
rsNew.Filter = rsOriginal.Filter
Il record corrente di un clone appena creato viene impostato sul primo record.
Le modifiche apportate a un oggetto Recordset sono visibili in tutti i cloni indipendentemente dal tipo di cursore. Tuttavia, dopo che si esegue Requery sull'oggetto Recordset originale, i cloni non verranno più sincronizzati con l'originale.
La chiusura del Recordset originale non chiude le copie e neanche chiudendo una copia viene chiuso l'originale o una qualsiasi delle altre copie.
È possibile clonare solo un oggetto Recordset che supporta i segnalibri. I valori dei segnalibri sono intercambiabili; ovvero, un riferimento segnalibro da un oggetto Recordset fa riferimento allo stesso record in tutti i suoi cloni.
Alcuni eventi Recordset attivati si verificheranno anche in tutti i cloni del Recordset. Tuttavia, poiché il record corrente può essere diverso tra Recordset clonati, gli eventi potrebbero non essere validi per il clone. Ad esempio, se si modifica un valore di un campo, si verificherà un evento WillChangeField nell'oggetto Recordset modificato e in tutti i cloni. Il parametro Fields dell'evento WillChangeField di un Recordset clonato (in cui la modifica non è stata apportata) farà riferimento ai campi del record corrente del clone, che può essere un record diverso rispetto al record corrente del Recordset originale in cui si è verificata la modifica.
Nella tabella seguente viene fornito un elenco completo di tutti gli eventi Recordset. Viene indicato se sono validi e attivati per tutti i cloni di recordset generati tramite il metodo Clone.
Evento | Attivato nei cloni? |
---|---|
EndOfRecordset | No |
FetchComplete | No |
FetchProgress | No |
FieldChangeComplete | Sì |
MoveComplete | No |
RecordChangeComplete | Sì |
RecordsetChangeComplete | No |
WillChangeField | Sì |
WillChangeRecord | Sì |
WillChangeRecordset | No |
WillMove | No |
Si applica a
Vedere anche
Esempio del metodo Clone (VB)
Esempio del metodo Clone (VBScript)
Esempio del metodo Clone (VC++)