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。如果有意義,則為TRUE。 如果 產生的條件應該傳回完全符合指定值的結果,則為 FALSE。
[out] pNoStringQuery
類型: BOOL*
VARIANT_TRUE 如果 ppQueryExpression 中的條件樹狀結構應該是完整查詢,或 VARIANT_FALSE 如果完整查詢應該是 ppQueryExpression 中條件樹狀結構的分離,以及如果此方法傳回S_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
,其中 pszValue 包含 1/2/2003 的值,而 pszValue2 包含 1/30/2006 的值。 當 pszValue2 不是 NULL 時,條件產生器可以一律傳回S_OK來拒絕範圍。
條件產生器可以安全地忽略 pPropertyNameTerm、 pOperationTerm 和 pValueTerm 的自變數。 不過,它會使用它們來產生分葉節點,該節點會傳遞至 MakeLeaf,以在屬性名稱、運算符和值查詢字串中正確資訊的來源。
在許多情況下,條件產生器可以忽略 自變數 automaticWildcard ,因為它不適用。 不過,如果產生的條件樹狀結構會執行某種形式的字串搜尋,其中前置詞搜尋 (COP_VALUE_STARTSWITHCOP_VALUE_STARTSWITH CONDITION_OPERATION) ,以及從 CONDITION_OPERATION) 搜尋確切字元串 (COP_EQUAL,則當 automaticWildcard 為VARIANT_TRUE時,就應該產生前者,而當 automaticWildcardVARIANT_FALSE時,則會產生後者。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP 搭配 SP2、Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 SP1 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | structuredquery.h |
另請參閱
參考