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

描述 pszValuepszValue2 中值的語意類型。

[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_OK
已成功產生條件。
S_FALSE
未產生條件,而且查詢剖析器必須以其他方式產生一個。

備註

如果這個方法傳回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來拒絕範圍。

條件產生器可以安全地忽略 pPropertyNameTermpOperationTermpValueTerm 的自變數。 不過,它會使用它們來產生分葉節點,該節點會傳遞至 MakeLeaf,以在屬性名稱、運算符和值查詢字串中正確資訊的來源。

在許多情況下,條件產生器可以忽略 自變數 automaticWildcard ,因為它不適用。 不過,如果產生的條件樹狀結構會執行某種形式的字串搜尋,其中前置詞搜尋 (COP_VALUE_STARTSWITHCOP_VALUE_STARTSWITH CONDITION_OPERATION) ,以及從 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

參考