IConditionGenerator::GenerateForLeaf メソッド (structuredquery.h)

それ以外の場合はリーフ クエリ式になるものの特別なクエリ式を生成します。

構文

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
);

パラメーター

[in] pConditionFactory

種類: IConditionFactory*

必要なノードの作成に使用できる IConditionFactory オブジェクト。

[in] pszPropertyName

種類: LPCWSTR

プロパティ名。プロパティ名がない場合は NULL

[in] cop

種類: CONDITION_OPERATION

操作 を識別するCONDITION_OPERATION 列挙型。

[in] pszValueType

種類: LPCWSTR

pszValue と pszValue2 の値を記述するセマンティック型。

[in] pszValue

種類: LPCWSTR

値を表す IConditionGenerator::RecognizeNamedEntities によって生成される文字列。 pszValue2NULL でない場合、これは値の範囲の先頭を表します。

[in] pszValue2

種類: LPCWSTR

NULL でない場合は、値の範囲の末尾を表す IConditionGenerator::RecognizeNamedEntities によって生成される文字列。 NULL の場合、pszValue は不連続値を表します。

[in] pPropertyNameTerm

種類: IRichChunk*

入力文字列のどの部分がプロパティ名を生成したかについての情報を含む IRichChunk オブジェクトへのポインター。

[in] pOperationTerm

種類: IRichChunk*

操作を生成した入力文字列の部分に関する情報を含む IRichChunk オブジェクトへのポインター。

[in] pValueTerm

種類: IRichChunk*

入力文字列のどの部分が値を生成したかについての情報を含む IRichChunk オブジェクトへのポインター。

[in] automaticWildcard

種類: BOOL

TRUE を指定 すると、指定した値で始まる結果 (意味がある場合) が返されます。 生成 された条件が指定した値と正確に一致する結果を返す場合は FALSE。

[out] pNoStringQuery

種類: BOOL*

ppQueryExpression の条件ツリーを完全なクエリにする必要がある場合はVARIANT_TRUEし、完全なクエリが ppQueryExpression の条件ツリーと、このメソッドがS_FALSEを返した場合に使用された条件ツリーの結合である必要がある場合はVARIANT_FALSEします。

[out, retval] ppQueryExpression

種類: ICondition**

ICondition 条件ツリーへのポインターを受け取ります。

戻り値

種類: HRESULT

次のいずれかを返します。それ以外の場合はエラー値を返します。

リターン コード 説明
S_OK
条件が正常に生成されました。
S_FALSE
条件が生成されず、クエリ パーサーは何らかの方法で条件を生成する必要があります。

解説

このメソッドがS_FALSEを返す場合、呼び出し元のクエリ パーサーは、このプロパティ名、操作、および値を持つリーフ ノード N を生成する必要があります。 このメソッドがS_FALSEを返し、 pNoStringQueryVARIANT_FALSEが含まれている場合、生成される完全なクエリはリーフ ノード N と ppQueryExpression の条件ツリーをサブ条件として持つ論理和 (OR) になります。

このメソッドがS_OKを返し、 pNoStringQueryVARIANT_TRUEが含まれている場合、 ppQueryExpression の条件ツリーは完全なクエリです。

pszValue2 の値は、 などのdate:1/2/2003..1/30/2006範囲クエリに対してのみ NULL 以外です。ここで、pszValue には 1/2/2003 の値が含まれており、pszValue2 には 1/30/2006 の値が含まれます。 条件ジェネレーターは、 pszValue2NULL でない場合に常にS_OKを返すことによって範囲を拒否することを選択できます。

条件ジェネレーターは、 引数 pPropertyNameTermpOperationTerm、および pValueTerm を無視しても問題ありません。 ただし、これらを使用してリーフ ノードを生成し、 MakeLeaf に渡すことによって、プロパティ名、演算子、および値のクエリ文字列内のオリジンに関する正しい情報を持ちます。

多くの場合、条件ジェネレーターは引数 automaticWildcard を無視できます。これは適用されないためです。 ただし、生成された条件ツリーが何らかの形式の文字列検索を実行する場合(プレフィックス検索 (CONDITION_OPERATIONからCOP_VALUE_STARTSWITH)、正確な文字列の検索 (CONDITION_OPERATIONからCOP_EQUAL) の両方が意味を持つ場合は、automaticWildcardVARIANT_TRUEされたときに前者を生成し、automaticWildcardVARIANT_FALSE場合は後者を生成する必要があります。

要件

   
サポートされている最小のクライアント WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 SP1 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー structuredquery.h

関連項目

CONDITION_CREATION_OPTIONS

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionGenerator

参照