Metodo Clone (ADO)

Crea un oggetto Recordset duplicato da un oggetto Recordset esistente. Facoltativamente, specifica che il clone è di sola lettura.

Sintassi

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Valore restituito

Restituisce un riferimento a un oggetto Recordset.

Parametri

rstDuplicate
Variabile oggetto che identifica l'oggetto Recordset duplicato da creare.

rstOriginal
Variabile oggetto che identifica l'oggetto Recordset da duplicare.

Locktype
facoltativo. Valore LockTypeEnum che specifica il tipo di blocco dell'oggetto Recordset originale o un oggetto Recordset di sola lettura. I valori validi sono adLockUnspecified o adLockReadOnly.

Commenti

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'uso 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 dell'oggetto Recordset originale, se presente, non verrà applicata al clone. Impostare la proprietà Filter del nuovo oggetto Recordset per filtrare i risultati. Il modo più semplice per copiare qualsiasi valore Filter esistente è 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 relativi cloni indipendentemente dal tipo di cursore. Tuttavia, dopo l'esecuzione di Requery nel recordset originale, i cloni non verranno più sincronizzati con l'originale.

La chiusura dell'oggetto Recordset originale non chiude le copie, né chiude una copia dell'originale o di qualsiasi altra copia.

È possibile clonare solo un oggetto Recordset che supporta i segnalibri. I valori dei segnalibri sono intercambiabili. in altre informazioni, un riferimento al segnalibro da un oggetto Recordset fa riferimento allo stesso record in uno dei relativi cloni.

Alcuni eventi recordset attivati verranno generati anche in tutti i cloni di recordset. Tuttavia, poiché il record corrente può differire 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 nel recordset modificato e in tutti i cloni. Il parametro Fields dell'evento WillChangeField di un oggetto Recordset clonato (in cui la modifica non è stata apportata) farà riferimento ai campi del record corrente del clone, che possono essere un record diverso rispetto al record corrente dell'oggetto Recordset originale in cui si è verificata la modifica.

Nella tabella seguente viene fornito un elenco completo di tutti gli eventi recordset. Indica 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
MoveComplete No
RecordChangeComplete
RecordsetChangeComplete No
Willchangefield
WillChangeRecord
Willchangerecordset No
WillMove No

Si applica a

Oggetto Recordset (ADO)

Vedere anche

Esempio di metodo Clone (VB)
Esempio di metodo Clone (VBScript)
Esempio del metodo Clone (VC++)