Freigeben über


Clone-Methode (ADO)

Erstellt ein dupliziertes Recordset -Objekt aus einem vorhandenen Recordset -Objekt. Gibt optional an, dass der Klon schreibgeschützt ist.

Syntax

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Rückgabewert

Gibt einen Recordset -Objektverweis zurück.

Parameter

rstDuplicate
Eine Objektvariable, die das duplizierte Recordset-objekt zu erstellenden Objekts identifiziert.

rstOriginal-
Eine Objektvariable, die das zu duplizierende objekt Recordset identifiziert.

LockType-
Wahlfrei. Ein LockTypeEnum Wert, der entweder den Sperrtyp des ursprünglichen Recordset-angibt, oder ein schreibgeschütztes Recordset-. Gültige Werte sind adLockUnspecified oder adLockReadOnly.

Bemerkungen

Verwenden Sie die Clone-Methode, um mehrere, duplizierte Recordset- Objekte zu erstellen, insbesondere, wenn Sie mehr als einen aktuellen Datensatz in einer bestimmten Datensatzgruppe verwalten möchten. Die Verwendung der Clone-Methode ist effizienter als das Erstellen und Öffnen eines neuen Recordset--Objekts, das dieselbe Definition wie das Original verwendet.

Die eigenschaft Filter des ursprünglichen Recordset, falls vorhanden, wird nicht auf den Klon angewendet. Legen Sie die Filter--Eigenschaft des neuen Recordset- fest, um die Ergebnisse zu filtern. Die einfachste Möglichkeit zum Kopieren vorhandener Filter- Werts besteht darin, ihn wie folgt direkt zuzuweisen.

rsNew.Filter = rsOriginal.Filter  

Der aktuelle Datensatz eines neu erstellten Klons wird auf den ersten Datensatz festgelegt.

Änderungen, die Sie an einem Recordset--Objekt vornehmen, sind unabhängig vom Cursortyp in allen Klonen sichtbar. Nachdem Sie jedoch Requery für das ursprüngliche Recordset-ausgeführt haben, werden die Klonen nicht mehr mit dem Original synchronisiert.

Das Schließen des ursprünglichen Recordset- schließt seine Kopien nicht, oder schließt eine Kopie das Original oder eine der anderen Kopien.

Sie können nur ein Recordset--Objekt klonen, das Lesezeichen unterstützt. Textmarkenwerte sind austauschbar; d. h. ein Lesezeichenverweis aus einem Recordset--Objekt bezieht sich auf denselben Datensatz in einem seiner Klonen.

Einige Recordset- ereignisse, die ausgelöst werden, treten auch in allen Recordset- Klonen auf. Da sich der aktuelle Datensatz jedoch zwischen geklonten Recordsetsunterscheiden kann, sind die Ereignisse für den Klon möglicherweise nicht gültig. Wenn Sie beispielsweise einen Wert eines Felds ändern, tritt ein WillChangeField- Ereignis im geänderten Recordset- und in allen Klonen auf. Der Fields Parameter des WillChangeField- Ereignisses eines geklonten Recordset- (wo die Änderung nicht vorgenommen wurde) verweist auf die Felder des aktuellen Datensatzes des Klons, was möglicherweise ein anderer Datensatz als der aktuelle Datensatz des ursprünglichen Recordset ist, in dem die Änderung aufgetreten ist.

Die folgende Tabelle enthält eine vollständige Auflistung aller Recordset--Ereignisse. Es gibt an, ob sie für alle Recordsetklonen gültig und ausgelöst werden, die mithilfe der Clone-Methode generiert werden.

Ereignis Wird in Klonen ausgelöst?
EndOfRecordset- Nein
FetchComplete- Nein
FetchProgress- Nein
FieldChangeComplete- Ja
MoveComplete- Nein
RecordChangeComplete- Ja
RecordsetChangeComplete- Nein
WillChangeField- Ja
WillChangeRecord- Ja
WillChangeRecordset- Nein
WillMove Nein

Gilt für

Recordset-Objekt (ADO)

Siehe auch

Clone-Methode (Vb-Beispiel)
Clone-Methode (Beispiel) (VBScript)
Clone-Methode (VC++-Beispiel)