Método IConditionGenerator::GenerateForLeaf (structuredquery.h)
Genera una expresión de consulta especial para lo que, de lo contrario, se convertiría en una expresión de consulta hoja.
Sintaxis
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*
Objeto IConditionFactory que se puede usar para crear los nodos necesarios.
[in] pszPropertyName
Tipo: LPCWSTR
Nombre de propiedad o NULL si no hay ningún nombre de propiedad.
[in] cop
Tipo: CONDITION_OPERATION
Un CONDITION_OPERATION tipo enumerado que identifica la operación.
[in] pszValueType
Tipo: LPCWSTR
Tipo semántico que describe los valores de pszValue y pszValue2.
[in] pszValue
Tipo: LPCWSTR
Cadena generada por IConditionGenerator::RecognizeNamedEntities que representa el valor. Si pszValue2 no es NULL, esto representa el principio del intervalo del valor.
[in] pszValue2
Tipo: LPCWSTR
Si no es NULL, una cadena generada por IConditionGenerator::RecognizeNamedEntities que representa el final del intervalo del valor. Si es NULL, pszValue representa un valor discreto.
[in] pPropertyNameTerm
Tipo: IRichChunk*
Puntero a un objeto IRichChunk que contiene información sobre qué parte de una cadena de entrada generó el nombre de propiedad.
[in] pOperationTerm
Tipo: IRichChunk*
Puntero a un objeto IRichChunk que contiene información sobre qué parte de una cadena de entrada generó la operación.
[in] pValueTerm
Tipo: IRichChunk*
Puntero a un objeto IRichChunk que contiene información sobre qué parte de una cadena de entrada generó el valor.
[in] automaticWildcard
Tipo: BOOL
TRUE si la condición generada debe devolver resultados que comienzan por el valor especificado, si son significativos. FALSE si la condición generada debe devolver resultados que coincidan exactamente con el valor especificado.
[out] pNoStringQuery
Tipo: BOOL*
VARIANT_TRUE si el árbol de condiciones de ppQueryExpression debe ser la consulta completa o VARIANT_FALSE si la consulta completa debe ser una disjunción del árbol de condiciones en ppQueryExpression y el árbol de condiciones que se habría usado si este método hubiera devuelto S_FALSE.
[out, retval] ppQueryExpression
Tipo: ICondition**
Recibe un puntero a un árbol de condición ICondition .
Valor devuelto
Tipo: HRESULT
Devuelve uno de los siguientes valores o, de lo contrario, un valor de error.
Código devuelto | Descripción |
---|---|
|
Se generó correctamente una condición. |
|
No se generó una condición y el analizador de consultas debe generar una de alguna otra manera. |
Comentarios
Si este método devuelve S_FALSE, el analizador de consultas que realiza la llamada debe generar un nodo hoja N con este nombre de propiedad, operación y valor. Si este método devuelve S_FALSE y pNoStringQuery contiene VARIANT_FALSE, la consulta generada completa es una disjunción (OR) con el nodo hoja N y el árbol de condiciones de ppQueryExpression como subconditions.
Si este método devuelve S_OK y pNoStringQuery contiene VARIANT_TRUE, el árbol de condiciones de ppQueryExpression es la consulta completa.
El valor de pszValue2 es distinto de NULL solo para una consulta de intervalo, como date:1/2/2003..1/30/2006
, donde pszValue contiene el valor de 1/2/2003 y pszValue2 contiene el valor de 1/30/2006. Un generador de condiciones puede optar por rechazar intervalos devolviendo siempre S_OK cuando pszValue2 no es NULL.
Un generador de condiciones puede omitir de forma segura los argumentos pPropertyNameTerm, pOperationTerm y pValueTerm. Sin embargo, los usaría para generar un nodo hoja que tenga información correcta sobre los orígenes de la cadena de consulta del nombre de propiedad, el operador y el valor, pasandolos a MakeLeaf.
En muchos casos, un generador de condiciones puede omitir el argumento automaticWildcard porque no se aplicaría. Sin embargo, si el árbol de condiciones generado realiza alguna forma de búsqueda de cadenas, donde tanto una búsqueda de prefijos (COP_VALUE_STARTSWITH de CONDITION_OPERATION) como una búsqueda de la cadena exacta (COP_EQUAL de CONDITION_OPERATION) son significativas, la primera debe generarse cuando se VARIANT_TRUEautomaticWildcard y la última cuando automaticWildcard es VARIANT_FALSE.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP con SP2, Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 con SP1 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | structuredquery.h |
Consulte también
Referencia