다음을 통해 공유


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*

VARIANT_TRUEppQueryExpression의 조건 트리가 전체 쿼리여야 하는지 또는 전체 쿼리가 ppQueryExpression의 조건 트리와 이 메서드가 S_FALSE 반환한 경우 사용되었을 조건 트리를 분리해야 하는지 VARIANT_FALSE.

[out, retval] ppQueryExpression

형식: ICondition**

ICondition 조건 트리에 대한 포인터를 받습니다.

반환 값

형식: HRESULT

다음 중 하나를 반환하거나, 그렇지 않으면 오류 값을 반환합니다.

반환 코드 Description
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는 2003년 1월 2일 값을 포함하고 pszValue2에는 2006년 1/30일 값이 포함됩니다. 조건 생성기는 pszValue2NULL이 아닌 경우 항상 S_OK 반환하여 범위를 거부하도록 선택할 수 있습니다.

조건 생성기는 pPropertyNameTerm, pOperationTermpValueTerm 인수를 안전하게 무시할 수 있습니다. 그러나 이를 사용하여 MakeLeaf에 전달하여 속성 이름, 연산자 및 값의 쿼리 문자열에서 원본에 대한 올바른 정보가 있는 리프 노드를 생성합니다.

대부분의 경우 조건 생성기는 적용되지 않으므로 automaticWildcard 인수를 무시할 수 있습니다. 그러나 생성된 조건 트리가 어떤 형태의 문자열 검색을 수행하는 경우 접두사 검색(CONDITION_OPERATION COP_VALUE_STARTSWITH)과 정확한 문자열(CONDITION_OPERATION COP_EQUAL)에 대한 검색이 모두 의미가 있는 경우 automaticWildcard가 VARIANT_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

참조