Méthode IConditionGenerator ::GenerateForLeaf (structuredquery.h)
Génère une expression de requête spéciale pour ce qui serait autrement une expression de requête feuille.
Syntaxe
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
);
Paramètres
[in] pConditionFactory
Type : IConditionFactory*
Objet IConditionFactory qui peut être utilisé pour créer les nœuds nécessaires.
[in] pszPropertyName
Type : LPCWSTR
Nom de la propriété ou NULL s’il n’y a pas de nom de propriété.
[in] cop
Type : CONDITION_OPERATION
Un CONDITION_OPERATION type énuméré identifiant l’opération.
[in] pszValueType
Type : LPCWSTR
Type sémantique décrivant les valeurs dans pszValue et pszValue2.
[in] pszValue
Type : LPCWSTR
Chaîne générée par IConditionGenerator ::RecognizeNamedEntities qui représente la valeur. Si pszValue2 n’a pas la valeur NULL, cela représente le début de la plage de la valeur.
[in] pszValue2
Type : LPCWSTR
Si ce n’est pas null, chaîne générée par IConditionGenerator ::RecognizeNamedEntities qui représente la fin de la plage de la valeur. Si la valeur est NULL, pszValue représente une valeur discrète.
[in] pPropertyNameTerm
Type : IRichChunk*
Pointeur vers un objet IRichChunk contenant des informations sur la partie d’une chaîne d’entrée qui a produit le nom de la propriété.
[in] pOperationTerm
Type : IRichChunk*
Pointeur vers un objet IRichChunk contenant des informations sur la partie d’une chaîne d’entrée qui a produit l’opération.
[in] pValueTerm
Type : IRichChunk*
Pointeur vers un objet IRichChunk contenant des informations sur la partie d’une chaîne d’entrée qui a produit la valeur.
[in] automaticWildcard
Type : BOOL
TRUE si la condition générée doit retourner des résultats qui commencent par la valeur spécifiée, s’ils sont significatifs. FALSE si la condition générée doit retourner des résultats correspondant exactement à la valeur spécifiée.
[out] pNoStringQuery
Type : BOOL*
VARIANT_TRUE si l’arborescence des conditions dans ppQueryExpression doit être la requête complète, ou VARIANT_FALSE si la requête complète doit être une disjonction de l’arborescence des conditions dans ppQueryExpression et de l’arborescence des conditions qui aurait été utilisée si cette méthode avait retourné S_FALSE.
[out, retval] ppQueryExpression
Type : ICondition**
Reçoit un pointeur vers une arborescence de conditions ICondition .
Valeur retournée
Type : HRESULT
Retourne l’une des valeurs suivantes, ou une valeur d’erreur dans le cas contraire.
Code de retour | Description |
---|---|
|
Une condition a été générée avec succès. |
|
Aucune condition n’a été générée et l’analyseur de requête doit en produire une d’une autre manière. |
Remarques
Si cette méthode retourne S_FALSE, l’analyseur de requête appelant doit générer un nœud feuille N avec ce nom de propriété, cette opération et cette valeur. Si cette méthode retourne S_FALSE et que pNoStringQuery contient VARIANT_FALSE, la requête générée complète est une disjonction (OR) avec le nœud feuille N et l’arborescence des conditions dans ppQueryExpression en tant que sous-conditions.
Si cette méthode retourne S_OK et que pNoStringQuery contient VARIANT_TRUE, l’arborescence des conditions dans ppQueryExpression est la requête complète.
La valeur de pszValue2 n’est pas NULL uniquement pour une requête de plage, telle que date:1/2/2003..1/30/2006
, où pszValue contient la valeur du 2/01/2003 et pszValue2 contient la valeur du 30/01/2006. Un générateur de conditions peut choisir de refuser des plages en retournant toujours S_OK lorsque pszValue2 n’a pas la valeur NULL.
Un générateur de conditions peut ignorer en toute sécurité les arguments pPropertyNameTerm, pOperationTerm et pValueTerm. Toutefois, il les utilise pour produire un nœud feuille qui contient des informations correctes sur les origines dans la chaîne de requête du nom de propriété, de l’opérateur et de la valeur, en les transmettant à MakeLeaf.
Dans de nombreux cas, un générateur de conditions peut ignorer l’argument automaticWildcard , car il ne s’applique pas. Toutefois, si l’arborescence de conditions générée effectue une forme de recherche sous forme de chaîne, où une recherche par préfixe (COP_VALUE_STARTSWITH à partir de CONDITION_OPERATION) et une recherche de la chaîne exacte (COP_EQUAL à partir de CONDITION_OPERATION) sont significatives, la première doit être générée lorsque automaticWildcard est VARIANT_TRUE, et la seconde quand automaticWildcard est VARIANT_FALSE.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP avec SP2, Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 avec SP1 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | structuredquery.h |
Voir aussi
Référence