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

Tipo enumerado CONDITION_OPERATION 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 la 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 comiencen con 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 condición en ppQueryExpression y el árbol de condición 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
S_OK
Se generó correctamente una condición.
S_FALSE
No se generó una condición y el analizador de consultas debe generarse 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 condición de ppQueryExpression como subcondiciones.

Si este método devuelve S_OK y pNoStringQuery contiene VARIANT_TRUE, el árbol de condición de ppQueryExpression es la consulta completa.

El valor de pszValue2 es distinto de NULL solo para una consulta de rango, 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 condición 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, entonces se debe generar el primero cuando automaticWildcard es VARIANT_TRUE y el último cuando automaticWildcard es VARIANT_FALSE.

Requisitos

   
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

CONDITION_CREATION_OPTIONS

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionGenerator

Referencia