Command-Objekt (ADO)

Definiert einen bestimmten Befehl, den Sie für eine Datenquelle ausführen möchten.

Bemerkungen

Verwenden Sie ein Command-Objekt, um eine Datenbank abzufragen und Datensätze in einem Recordset-Objekt zurückzugeben und dadurch einen Massenvorgang auszuführen oder die Struktur einer Datenbank zu bearbeiten. Abhängig von der Funktionalität des Anbieters können einige Command-Auflistungen, -Methoden oder -Eigenschaften einen Fehler generieren, wenn auf sie verwiesen wird.

Die Auflistungen, Methoden und Eigenschaften eines Command-Objekts bieten Ihnen folgende Möglichkeiten:

  • Definieren des ausführbaren Texts des Befehls (z. B. eine SQL-Anweisung) mit der CommandText-Eigenschaft. Alternativ: Definieren des Befehls mit der CommandStream-Eigenschaft für andere Befehls- oder Abfragestrukturen als einfache Zeichenfolgen (z. B. XML-Vorlagenabfragen).

  • Optional: Angeben des Befehlsdialekts, der in CommandText oder CommandStream mit der Dialect-Eigenschaft verwendet wird.

  • Definieren von parametrisierten Abfragen oder Argumenten gespeicherter Prozeduren mit Parameter-Objekten und der Parameters-Auflistung.

  • Angeben, ob Parameternamen mit der NamedParameters-Eigenschaft an den Anbieter übergeben werden sollen.

  • Ausführen eines Befehls und Zurückgeben eines Recordset-Objekts (sofern angebracht) mit der Execute-Methode.

  • Angeben des Befehlstyps mit der CommandType-Eigenschaft vor der Ausführung, um die Leistung zu optimieren.

  • Steuern, ob der Anbieter vor der Ausführung mit der Prepared-Eigenschaft eine vorbereitete (oder kompilierte) Version des Befehls speichert.

  • Festlegen der Anzahl von Sekunden, auf die ein Anbieter wartet, bis ein Befehl mit der CommandTimeout-Eigenschaft ausgeführt wird.

  • Zuordnen einer offenen Verbindung mit einem Command-Objekt durch Festlegen der zugehörigen ActiveConnection-Eigenschaft.

  • Festlegen der Name-Eigenschaft zur Identifizierung des Command-Objekts als Methode für das zugeordnete Connection-Objekt.

  • Übergeben eines Command-Objekts an die Source-Eigenschaft eines Recordsets, um Daten abzurufen.

  • Zugreifen auf anbieterspezifische Attribute mit der Properties-Auflistung.

Hinweis

Wenn Sie eine Abfrage ohne Verwendung eines Command-Objekts ausführen möchten, übergeben Sie eine Abfragezeichenfolge an die Execute-Methode eines Connection-Objekts oder die Open-Methode eines Recordset-Objekts. Ein Command-Objekt ist jedoch erforderlich, wenn Sie den Befehlstext beibehalten und erneut ausführen möchten oder Abfrageparameter verwenden.

Um ein Command-Objekt unabhängig von einem zuvor definierten Connection-Objekt zu erstellen, legen Sie die zugehörige ActiveConnection-Eigenschaft auf eine gültige Verbindungszeichenfolge fest. ADO erstellt weiterhin ein Connection-Objekt, weist dieses Objekt jedoch keiner Objektvariable zu. Wenn Sie jedoch mehrere Command-Objekte mit derselben Verbindung zuordnen, sollten Sie explizit ein Connection-Objekt erstellen und öffnen. Dadurch wird das Connection-Objekt einer Objektvariable zugewiesen. Stellen Sie sicher, dass das Connection-Objekt erfolgreich geöffnet wurde, bevor Sie es der ActiveConnection-Eigenschaft des Command-Objekts zuweisen, da das Zuweisen eines geschlossenen Connection-Objekts einen Fehler verursacht. Wenn Sie die ActiveConnection-Eigenschaft des Command-Objekts nicht auf diese Objektvariable festlegen, erstellt ADO ein neues Connection-Objekt für jedes Command-Objekt, auch wenn Sie dieselbe Verbindungszeichenfolge verwenden.

Um ein Command-Objekt auszuführen, rufen Sie es anhand der Name-Eigenschaft des zugeordneten Connection-Objekts auf. Das Command-Objekt muss über die ActiveConnection-Eigenschaft auf das Connection-Objekt festgelegt sein. Wenn das Command-Objekt Parameter enthält, übergeben Sie deren Werte als Argumente an die Methode.

Wenn zwei oder mehr Command-Objekte in derselben Verbindung ausgeführt werden und beide Command-Objekte eine gespeicherte Prozedur mit Ausgabeparametern sind, tritt ein Fehler auf. Um jedes Command-Objekt auszuführen, verwenden Sie separate Verbindungen, oder trennen Sie alle anderen Command-Objekte von der Verbindung.

Die Parameters-Auflistung ist das Standardmitglied des Command-Objekts. Daher sind die folgenden beiden Codeanweisungen gleichwertig.

objCmd.Parameters.Item(0)  
objCmd(0)  
  • Das Command-Objekt ist für die Skripterstellung nicht sicher.

Dieser Abschnitt enthält das folgende Thema.

Weitere Informationen

Connection-Objekt (ADO)
Parameters-Collection (ADO)
Properties-Collection (ADO)
Anhang A: Anbieter