Freigeben über


Open-Methode (ADO-Recordset)

Öffnet einen Cursor auf einem Recordset-Objekt.

Syntax

  
recordset.Open Source, ActiveConnection, CursorType, LockType, Options  

Parameter

Source-
Wahlfrei. Eine Variant-, die zu einem gültigen Command-Objekt, einer SQL-Anweisung, einem Tabellennamen, einem Aufruf einer gespeicherten Prozedur, einer URL oder dem Namen einer Datei oder Stream-Objekt ausgewertet wird, das ein dauerhaft gespeichertes Recordset-enthält.

ActiveConnection-
Wahlfrei. Entweder ein Variant-, der einen gültigen Objektvariablennamen auswertet, oder eine String-, die ConnectionString- Parameter enthält.

CursorType-
Wahlfrei. Ein CursorTypeEnum Wert, der den Cursortyp bestimmt, den der Anbieter beim Öffnen des Recordset-verwenden soll. Der Standardwert ist adOpenForwardOnly.

LockType-
Wahlfrei. Ein LockTypeEnum Wert, der bestimmt, welchen Sperrtyp (Parallelität) der Anbieter beim Öffnen des Recordset-verwenden soll. Der Standardwert ist adLockReadOnly.

Optionen
Wahlfrei. Ein Long-Wert, der angibt, wie der Anbieter das Argument Source auswerten soll, wenn es einen anderen Wert als ein Command-Objekt darstellt oder dass das Recordset- aus einer Datei wiederhergestellt werden soll, in der es zuvor gespeichert wurde. Dabei kann es sich um einen oder mehrere CommandTypeEnum oder ExecuteOptionEnum Werte handeln, die mit einem bitweisen OR-Operator kombiniert werden können.

Anmerkung

Wenn Sie ein Recordset- aus einem Stream- öffnen, das ein beibehaltenes Recordset-enthält, hat die Verwendung eines ExecuteOptionEnum- Werts adAsyncFetchNonBlocking keine Auswirkung; Der Abruf erfolgt synchron und blockiert.

Anmerkung

Die ExecuteOpenEnum- Werte von adExecuteNoRecords oder adExecuteStream- sollten nicht mit Openverwendet werden.

Bemerkungen

Der Standardcursor für ein ADO-Recordset- ist ein Vorwärtscursor, der sich auf dem Server befindet.

Mithilfe der Open-Methode für ein Recordset--Objekt wird ein Cursor geöffnet, der Datensätze aus einer Basistabelle, den Ergebnissen einer Abfrage oder einem zuvor gespeicherten Recordset-darstellt.

Verwenden Sie das optionale argument Source, um eine Datenquelle mithilfe einer der folgenden Werte anzugeben: eine Command-Objektvariable, eine SQL-Anweisung, eine gespeicherte Prozedur, einen Tabellennamen, eine URL oder einen vollständigen Dateinamen. Wenn Source ein Dateipfadname ist, kann es sich um einen vollständigen Pfad ("c:\dir\file.rst"), einen relativen Pfad (".) handeln. \file.rst") oder eine URL (https://files/file.rst).

Es empfiehlt sich nicht, das Argument Source der Open-Methode zu verwenden, um eine Aktionsabfrage auszuführen, die keine Datensätze zurückgibt, da es keine einfache Möglichkeit gibt, zu bestimmen, ob der Aufruf erfolgreich war. Das Recordset, das von einer solchen Abfrage zurückgegeben wird, wird geschlossen. Um eine Abfrage auszuführen, die keine Datensätze zurückgibt, z. B. eine SQL INSERT-Anweisung, rufen Sie stattdessen die Execute-Methode eines Command-Objekts oder die Execute-Methode eines Connection-Objekts auf.

Das argument ActiveConnection entspricht der ActiveConnection-Eigenschaft und gibt an, in welcher Verbindung das Recordset-Objekt geöffnet werden soll. Wenn Sie eine Verbindungsdefinition für dieses Argument übergeben, öffnet ADO eine neue Verbindung mit den angegebenen Parametern. Nachdem Sie das Records et mit einem clientseitigen Cursor geöffnet haben, indem Sie die eigenschaft CursorLocation auf adUseClientfestlegen, können Sie den Wert dieser Eigenschaft ändern, um Aktualisierungen an einen anderen Anbieter zu senden. Sie können diese Eigenschaft auch auf Nothing (in Microsoft Visual Basic) oder NULL festlegen, um das Recordset von einem beliebigen Anbieter zu trennen. Das Ändern ActiveConnection- für einen serverseitigen Cursor generiert jedoch einen Fehler.

Für die anderen Argumente, die direkt Eigenschaften eines Recordset-objekts -Objekts entsprechen (Source, CursorTypeund LockType), ist die Beziehung der Argumente zu den Eigenschaften wie folgt:

  • Die Eigenschaft ist lese-/schreibgeschützt, bevor das Recordset-Objekt geöffnet wird.

  • Die Eigenschafteneinstellungen werden verwendet, es sei denn, Sie übergeben die entsprechenden Argumente beim Ausführen der Open-Methode. Wenn Sie ein Argument übergeben, wird die entsprechende Eigenschaftseinstellung außer Kraft gesetzt, und die Eigenschaftseinstellung wird mit dem Argumentwert aktualisiert.

  • Nachdem Sie das Recordset-Objekt geöffnet haben, werden diese Eigenschaften schreibgeschützt.

Anmerkung

Die ActiveConnection--Eigenschaft ist schreibgeschützt für Recordset- Objekte, deren Source-Eigenschaft auf ein gültiges Command-Objekt festgelegt ist, auch wenn das Recordset-Objekt nicht geöffnet ist.

Wenn Sie ein Command-Objekt im Argument Source übergeben und außerdem ein ActiveConnection--Argument übergeben, tritt ein Fehler auf. Die ActiveConnection--Eigenschaft des Command-Objekts muss bereits auf ein gültiges Connection-Objekt oder verbindungszeichenfolge festgelegt sein.

Wenn Sie ein anderes Objekt als ein Command--Objekt im Argument Source übergeben, können Sie das Argument Optionen verwenden, um die Auswertung des Arguments Source zu optimieren. Wenn das argument Options nicht definiert ist, kann die Leistung beeinträchtigt werden, da ADO Aufrufe an den Anbieter ausführen muss, um festzustellen, ob es sich bei dem Argument um eine SQL-Anweisung, eine gespeicherte Prozedur, eine URL oder einen Tabellennamen handelt. Wenn Sie wissen, welche Source Typ Sie verwenden, weist das Festlegen des Arguments Options ADO an, direkt zum relevanten Code zu springen. Wenn das Argument Optionen nicht mit dem typ Source übereinstimmt, tritt ein Fehler auf.

Wenn Sie ein Stream-Objekt im Argument Source übergeben, sollten Sie keine Informationen an die anderen Argumente übergeben. Dadurch wird ein Fehler generiert. Die ActiveConnection- Informationen werden nicht beibehalten, wenn ein Recordset- aus einem Stream-geöffnet wird.

The default for the Options argument is adCmdFile if no connection is associated with the Recordset. Dies ist in der Regel der Fall für dauerhaft gespeicherte Recordset--Objekte.

Wenn die Datenquelle keine Datensätze zurückgibt, legt der Anbieter die eigenschaften BOF und EOF auf Truefest, und die aktuelle Datensatzposition ist nicht definiert. Sie können diesem leeren Recordset Objekt weiterhin neue Daten hinzufügen, wenn der Cursortyp dies zulässt.

Wenn Sie Ihre Vorgänge über ein geöffnetes Recordset--Objekt abgeschlossen haben, verwenden Sie die Close-Methode, um alle zugeordneten Systemressourcen freizugeben. Durch das Schließen eines Objekts wird es nicht aus dem Arbeitsspeicher entfernt. Sie können die Eigenschafteneinstellungen ändern und die Open-Methode verwenden, um sie später erneut zu öffnen. Um ein Objekt vollständig aus dem Arbeitsspeicher zu entfernen, legen Sie die Objektvariable auf Nothingfest.

Rufen Sie vor dem Festlegen der ActiveConnection-Eigenschaft Open ohne Operanden auf, um eine Instanz eines Recordsets zu erstellen, durch Anfügen von Feldern an das RecordsetFields-Auflistung erstellt wurde.

Wenn Sie die eigenschaft CursorLocation auf adUseClient-festgelegt haben, können Sie Zeilen asynchron auf eine von zwei Arten abrufen. Die empfohlene Methode besteht darin, Optionen auf adAsyncFetch-festzulegen. Alternativ können Sie die dynamische Eigenschaft "Asynchrone Rowsetverarbeitung" in der Properties -Auflistung verwenden, aber verwandte abgerufene Ereignisse können verloren gehen, wenn Sie den parameter Options nicht auf adAsyncFetchfestlegen.

Anmerkung

Das Abrufen von Hintergrund im MS Remote-Anbieter wird nur über den Open-Parameter Options-Methode unterstützt.

Anmerkung

URLs, die das HTTP-Schema verwenden, rufen automatisch den Microsoft OLE DB-Anbieter für Internet Publishingauf. Weitere Informationen finden Sie unter absoluten und relativen URLs.

Bestimmte Kombinationen aus CommandTypeEnum- und ExecuteOptionEnum- Werten sind ungültig. Informationen dazu, welche Optionen nicht kombiniert werden können, finden Sie in den Themen für die ExecuteOptionEnumund CommandTypeEnum.

Gilt für

Recordset-Objekt (ADO)

Siehe auch

Open- und Close-Methode (Vb-Beispiel)
Open- und Close-Methode (Beispiel) (VBScript)
Open- und Close-Methoden (Beispiel) (VC++)
Save- und Open-Methoden (Beispiel) (VB)
Open-Methode (ADO-Verbindung)
Open-Methode (ADO Record)
Open-Methode (ADO Stream)
OpenSchema-Methode
Save-Methode