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 列挙型。
[in] pszValueType
種類: LPCWSTR
pszValue と pszValue2 の値を記述するセマンティック型。
[in] pszValue
種類: LPCWSTR
値を表す IConditionGenerator::RecognizeNamedEntities によって生成される文字列。 pszValue2 が NULL でない場合、これは値の範囲の先頭を表します。
[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_FALSEを返す場合、呼び出し元のクエリ パーサーは、このプロパティ名、操作、および値を持つリーフ ノード N を生成する必要があります。 このメソッドがS_FALSEを返し、 pNoStringQuery に VARIANT_FALSEが含まれている場合、生成される完全なクエリはリーフ ノード N と ppQueryExpression の条件ツリーをサブ条件として持つ論理和 (OR) になります。
このメソッドがS_OKを返し、 pNoStringQuery に VARIANT_TRUEが含まれている場合、 ppQueryExpression の条件ツリーは完全なクエリです。
pszValue2 の値は、 などのdate:1/2/2003..1/30/2006
範囲クエリに対してのみ NULL 以外です。ここで、pszValue には 1/2/2003 の値が含まれており、pszValue2 には 1/30/2006 の値が含まれます。 条件ジェネレーターは、 pszValue2 が NULL でない場合に常にS_OKを返すことによって範囲を拒否することを選択できます。
条件ジェネレーターは、 引数 pPropertyNameTerm、 pOperationTerm、および pValueTerm を無視しても問題ありません。 ただし、これらを使用してリーフ ノードを生成し、 MakeLeaf に渡すことによって、プロパティ名、演算子、および値のクエリ文字列内のオリジンに関する正しい情報を持ちます。
多くの場合、条件ジェネレーターは引数 automaticWildcard を無視できます。これは適用されないためです。 ただし、生成された条件ツリーが何らかの形式の文字列検索を実行する場合(プレフィックス検索 (CONDITION_OPERATIONからCOP_VALUE_STARTSWITH)、正確な文字列の検索 (CONDITION_OPERATIONからCOP_EQUAL) の両方が意味を持つ場合は、automaticWildcard がVARIANT_TRUEされたときに前者を生成し、automaticWildcard がVARIANT_FALSE場合は後者を生成する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 SP1 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | structuredquery.h |
こちらもご覧ください
参照