ICommandTree::GetCommandTree-Methode (cmdtree.h)

Hinweis

Der Indizierungsdienst wird ab Windows XP nicht mehr unterstützt und steht ab Windows 8 nicht mehr zur Verfügung. Verwenden Sie stattdessen Windows Search für die clientseitige Suche und Microsoft Search Server Express für die serverseitige Suche.

Die ICommandTree::GetCommandTree-Methode gibt den aktuellen Befehl als Struktur an, einschließlich aller hinzugefügten Nachverarbeitungsvorgänge.

Syntax

HRESULT GetCommandTree(
  [out] DBCOMMANDTREE **ppRoot
);

Parameter

[out] ppRoot

Das Befehlsobjekt ordnet Arbeitsspeicher für die Befehlsstruktur zu und gibt die Adresse an diesen Speicher zurück. Der Consumer gibt diesen Arbeitsspeicher mit IMalloc::Free jeweils knoten-nach-einander frei, wenn er die Befehlsstruktur nicht mehr benötigt. Der Anbieter legt ppRoot auf einen NULL-Zeiger fest, wenn ein Fehler auftritt.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
DB_S_ERRORSINTREE
Der Anbieter hat beim Erstellen der Befehlsstruktur nicht schwerwiegende Fehler im Befehlstext ermittelt, der zuvor von ICommandText::SetCommandText festgelegt wurde.
E_FAIL
Es ist ein anbieterspezifischer Fehler aufgetreten.
E_INVALIDARG
Der ppRoot-Parameter war ein NULL-Zeiger.
E_OUTOFMEMORY
Der Anbieter konnte nicht genügend Arbeitsspeicher zuweisen, in dem die Befehlsstruktur zurückgegeben werden konnte.
DB_E_CANTTRANSLATE
Der Anbieter kann den Befehlstext, der zuvor von ICommandText::SetCommandText als Struktur festgelegt wurde, nicht darstellen.

Hinweise

Die zurückgegebene Struktur spiegelt genau den Befehl wider, der durch den letzten Aufruf von ICommandTree::SetCommandTree oder ICommandText::SetCommandText festgelegt wurde, wie durch nachfolgende Aufrufe von IQuery::AddPostProcessing geändert. Wenn der Befehl als Struktur gespeichert wird, ist die zurückgegebene Struktur eine Kopie der im Befehlsobjekt gespeicherten Struktur. Wenn ein Strukturknoten mit Text übergeben wurde, wird dieser ebenfalls als Text wiedergegeben. Wenn der Befehl als Text gespeichert wird, sollte der Anbieter eine "navigierbare" Befehlsstrukturdarstellung des Texts zurückgeben, die nicht unbedingt in optimierter Form vorliegt. Wenn der Anbieter keine vollständige Darstellung erstellen kann, kann die Befehlsstruktur aus einem einzelnen Textknoten bestehen. Wenn die Struktur beispielsweise als DBOP_SQL_select Knoten dargestellt werden kann und der Anbieter diesen Knoten unterstützt, muss sie in diesem Format zurückgegeben werden. Wenn die Struktur jedoch nicht als DBOP_SQL_select Knoten dargestellt werden kann, sondern in einer nichttrivialen Befehlsstruktur dargestellt werden kann (d. h. in einem anderen Typ als DBOP_text_command), muss der Anbieter sie als diese nichttriviale Struktur zurückgeben. Der Anbieter gibt die Struktur möglicherweise nur als trivialen DBOP_text_command Knoten zurück, wenn dies der einzige Befehlsknoten ist, den er unterstützt. Andernfalls muss eine gültige, nicht triviale navigierbare Struktur zurückgegeben oder DB_E_CANTTRANSLATE zurückgegeben werden, wenn der Text in einer solchen Struktur nicht dargestellt werden kann. Zu diesem Zeitpunkt sollte der Anbieter keine unnötige Überprüfung durchführen, z. B. bindung, aber wenn der Anbieter während der Analyse nicht schwerwiegende Fehler beim Erstellen der Struktur erkennt, sollte er die Fehlerinformationen in der Struktur einfügen und DB_S_ERRORSINTREE zurückgeben.

Diese Methode zeigt nicht die interne, optimierte Übersetzung eines Anbieters (die sich von einer DBCOMMANDTREE-Struktur unterscheiden kann) von Text in (Nicht-Text)-Strukturvorgänge.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile cmdtree.h

Weitere Informationen

ICommandTree