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
S_OK
Une condition a été générée avec succès.
S_FALSE
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

CONDITION_CREATION_OPTIONS

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionGenerator

Référence