Compartilhar via


Método IConditionGenerator::GenerateForLeaf (structuredquery.h)

Gera uma expressão de consulta especial para o que de outra forma se tornaria uma expressão de consulta folha.

Sintaxe

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
);

Parâmetros

[in] pConditionFactory

Tipo: IConditionFactory*

Um objeto IConditionFactory que pode ser usado para criar os nós necessários.

[in] pszPropertyName

Tipo: LPCWSTR

Nome da propriedade ou NULL se não houver nenhum nome de propriedade.

[in] cop

Tipo: CONDITION_OPERATION

Um CONDITION_OPERATION tipo enumerado que identifica a operação.

[in] pszValueType

Tipo: LPCWSTR

Tipo semântico que descreve os valores em pszValue e pszValue2.

[in] pszValue

Tipo: LPCWSTR

Uma cadeia de caracteres gerada por IConditionGenerator::RecognizeNamedEntities que representa o valor. Se pszValue2 não for NULL, isso representará o início do intervalo do valor.

[in] pszValue2

Tipo: LPCWSTR

Se não for NULL, uma cadeia de caracteres gerada por IConditionGenerator::RecognizeNamedEntities que representa o final do intervalo do valor. Se FOR NULL, pszValue representará um valor discreto.

[in] pPropertyNameTerm

Tipo: IRichChunk*

Ponteiro para um objeto IRichChunk que contém informações sobre qual parte de uma cadeia de caracteres de entrada produziu o nome da propriedade.

[in] pOperationTerm

Tipo: IRichChunk*

Ponteiro para um objeto IRichChunk que contém informações sobre qual parte de uma cadeia de caracteres de entrada produziu a operação.

[in] pValueTerm

Tipo: IRichChunk*

Ponteiro para um objeto IRichChunk que contém informações sobre qual parte de uma cadeia de caracteres de entrada produziu o valor.

[in] automaticWildcard

Tipo: BOOL

TRUE se a condição gerada deve retornar resultados que começam com o valor especificado, se significativo. FALSE se a condição gerada deve retornar resultados correspondentes exatamente ao valor especificado.

[out] pNoStringQuery

Tipo: BOOL*

VARIANT_TRUE se a árvore de condição em ppQueryExpression deve ser a consulta completa ou VARIANT_FALSE se a consulta completa deve ser uma disjunção da árvore de condição em ppQueryExpression e a árvore de condição que teria sido usada se esse método tivesse retornado S_FALSE.

[out, retval] ppQueryExpression

Tipo: ICondition**

Recebe um ponteiro para uma árvore de condição ICondition .

Retornar valor

Tipo: HRESULT

Retorna um dos seguintes ou um valor de erro, caso contrário.

Código de retorno Descrição
S_OK
Uma condição foi gerada com êxito.
S_FALSE
Uma condição não foi gerada e o analisador de consulta deve produzir uma de alguma outra maneira.

Comentários

Se esse método retornar S_FALSE, o analisador de consulta de chamada deverá gerar um nó folha N com esse nome de propriedade, operação e valor. Se esse método retornar S_FALSE e pNoStringQuery contiver VARIANT_FALSE, a consulta gerada completa será uma disjunção (OR) com o nó folha N e a árvore de condição em ppQueryExpression como subcondições.

Se esse método retornar S_OK e pNoStringQuery contiver VARIANT_TRUE, a árvore de condição em ppQueryExpression será a consulta completa.

O valor de pszValue2 é não NULL somente para uma consulta de intervalo, como date:1/2/2003..1/30/2006, em que pszValue contém o valor de 1/2/2003 e pszValue2 contém o valor de 1/30/2006. Um gerador de condição pode optar por recusar intervalos sempre retornando S_OK quando pszValue2 não é NULL.

Um gerador de condição pode ignorar com segurança os argumentos pPropertyNameTerm, pOperationTerm e pValueTerm. No entanto, ele os usaria para produzir um nó folha que tenha informações corretas sobre as origens na cadeia de caracteres de consulta do nome da propriedade, do operador e do valor, passando-os para MakeLeaf.

Em muitos casos, um gerador de condição pode ignorar o argumento automaticWildcard porque ele não se aplicaria. No entanto, se a árvore de condição gerada fizer alguma forma de pesquisa de cadeia de caracteres, em que uma pesquisa de prefixo (COP_VALUE_STARTSWITH de CONDITION_OPERATION) e uma pesquisa pela cadeia de caracteres exata (COP_EQUAL de CONDITION_OPERATION) forem significativas, a primeira deverá ser gerada quando automaticWildcard for VARIANT_TRUE e a última quando automaticWildcard for VARIANT_FALSE.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP com SP2, Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho structuredquery.h

Confira também

CONDITION_CREATION_OPTIONS

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionGenerator

Referência