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 |
---|---|
|
Uma condição foi gerada com êxito. |
|
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
Referência