IConditionGenerator::GenerateForLeaf-Methode (structuredquery.h)
Generiert einen speziellen Abfrageausdruck für den, der andernfalls zu einem Blattabfrageausdruck werden würde.
Syntax
HRESULT GenerateForLeaf(
[in] IConditionFactory *pConditionFactory,
[in] LPCWSTR pszPropertyName,
[in] CONDITION_OPERATION cop,
[in] LPCWSTR pszValueType,
[in] LPCWSTR pszValue,
[in] LPCWSTR pszValue2,
[in] IRichChunk *pPropertyNameTerm,
[in] IRichChunk *pOperationTerm,
[in] IRichChunk *pValueTerm,
[in] BOOL automaticWildcard,
[out] BOOL *pNoStringQuery,
[out, retval] ICondition **ppQueryExpression
);
Parameter
[in] pConditionFactory
Typ: IConditionFactory*
Ein IConditionFactory-Objekt , das zum Erstellen der erforderlichen Knoten verwendet werden kann.
[in] pszPropertyName
Typ: LPCWSTR
Eigenschaftsname oder NULL , wenn kein Eigenschaftenname vorhanden ist.
[in] cop
Typ: CONDITION_OPERATION
Ein CONDITION_OPERATION aufgezählter Typ, der den Vorgang identifiziert.
[in] pszValueType
Typ: LPCWSTR
Semantischer Typ, der die Werte in pszValue und pszValue2 beschreibt.
[in] pszValue
Typ: LPCWSTR
Eine von IConditionGenerator::RecognizeNamedEntities generierte Zeichenfolge, die den Wert darstellt. Wenn pszValue2 nicht NULL ist, stellt dies den Anfang des Bereichs des Werts dar.
[in] pszValue2
Typ: LPCWSTR
Wenn nicht NULL, eine von IConditionGenerator::RecognizeNamedEntities generierte Zeichenfolge, die das Ende des Wertbereichs darstellt. Wenn NULL, stellt pszValue einen diskreten Wert dar.
[in] pPropertyNameTerm
Typ: IRichChunk*
Zeiger auf ein IRichChunk-Objekt , das Informationen darüber enthält, welcher Teil einer Eingabezeichenfolge den Eigenschaftennamen erzeugt hat.
[in] pOperationTerm
Typ: IRichChunk*
Zeiger auf ein IRichChunk-Objekt , das Informationen darüber enthält, welcher Teil einer Eingabezeichenfolge den Vorgang erzeugt hat.
[in] pValueTerm
Typ: IRichChunk*
Zeiger auf ein IRichChunk-Objekt , das Informationen darüber enthält, welcher Teil einer Eingabezeichenfolge den Wert erzeugt hat.
[in] automaticWildcard
Typ: BOOL
TRUE , wenn die generierte Bedingung Ergebnisse zurückgeben soll, die mit dem angegebenen Wert beginnen, sofern sinnvoll. FALSE , wenn die generierte Bedingung Ergebnisse zurückgeben soll, die genau dem angegebenen Wert entsprechen.
[out] pNoStringQuery
Typ: BOOL*
VARIANT_TRUE , ob die Bedingungsstruktur in ppQueryExpression die vollständige Abfrage sein soll, oder VARIANT_FALSE , wenn die vollständige Abfrage eine Disjunktion der Bedingungsstruktur in ppQueryExpression und der Bedingungsstruktur sein soll, die verwendet worden wäre, wenn diese Methode S_FALSE zurückgegeben hätte.
[out, retval] ppQueryExpression
Typ: ICondition**
Empfängt einen Zeiger auf eine ICondition-Bedingungsstruktur .
Rückgabewert
Typ: HRESULT
Gibt einen der folgenden Werte oder andernfalls einen Fehlerwert zurück.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Eine Bedingung wurde erfolgreich generiert. |
|
Es wurde keine Bedingung generiert, und der Abfrageparser muss eine bedingung auf andere Weise erzeugen. |
Hinweise
Wenn diese Methode S_FALSE zurückgibt, sollte der aufrufende Abfrageparser einen Blattknoten N mit diesem Eigenschaftsnamen, Vorgang und Wert generieren. Wenn diese Methode S_FALSE zurückgibt und pNoStringQueryVARIANT_FALSE enthält, ist die vollständig generierte Abfrage eine Disjunktion (OR) mit dem Blattknoten N und der Bedingungsstruktur in ppQueryExpression als Unterbedingungen.
Wenn diese Methode S_OK zurückgibt und pNoStringQueryVARIANT_TRUE enthält, ist die Bedingungsstruktur in ppQueryExpression die vollständige Abfrage.
Der Wert von pszValue2 ist nur für eine Bereichsabfrage ungleich NULL , z date:1/2/2003..1/30/2006
. B. , wobei pszValue den Wert für 1/2/2003 und pszValue2 den Wert für 30.01.2006 enthält. Ein Bedingungsgenerator kann bereiche ablehnen, indem immer S_OK zurückgegeben wird, wenn pszValue2 nicht NULL ist.
Ein Bedingungsgenerator kann die Argumente pPropertyNameTerm, pOperationTerm und pValueTerm sicher ignorieren. Sie würde sie jedoch verwenden, um einen Blattknoten zu erzeugen, der korrekte Informationen über die Ursprünge in der Abfragezeichenfolge des Eigenschaftennamens, des Operators und des Werts enthält, indem sie an MakeLeaf übergeben werden.
In vielen Fällen kann ein Bedingungsgenerator das Argument automaticWildcard ignorieren, da es nicht angewendet würde. Wenn die generierte Bedingungsstruktur jedoch eine Form der Zeichenfolgensuche durchführt, wobei sowohl eine Präfixsuche (COP_VALUE_STARTSWITH von CONDITION_OPERATION) als auch eine Suche nach der genauen Zeichenfolge (COP_EQUAL aus CONDITION_OPERATION) sinnvoll sind, sollte erstere generiert werden, wenn automaticWildcardVARIANT_TRUE ist, und letzteres, wenn automaticWildcardVARIANT_FALSE ist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP mit SP2, Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 mit SP1 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | structuredquery.h |
Weitere Informationen
Referenz