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*
VARIANT_TRUEppQueryExpression의 조건 트리가 전체 쿼리여야 하는지 또는 전체 쿼리가 ppQueryExpression의 조건 트리와 이 메서드가 S_FALSE 반환한 경우 사용되었을 조건 트리를 분리해야 하는지 VARIANT_FALSE.
[out, retval] ppQueryExpression
형식: ICondition**
ICondition 조건 트리에 대한 포인터를 받습니다.
반환 값
형식: HRESULT
다음 중 하나를 반환하거나, 그렇지 않으면 오류 값을 반환합니다.
반환 코드 | Description |
---|---|
|
조건을 성공적으로 생성했습니다. |
|
조건이 생성되지 않았으며 쿼리 파서가 다른 방법으로 생성해야 합니다. |
설명
이 메서드가 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는 2003년 1월 2일 값을 포함하고 pszValue2에는 2006년 1/30일 값이 포함됩니다. 조건 생성기는 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 |
추가 정보
참조