Condividi tramite


Metodo IConditionGenerator::GenerateForLeaf (structuredquery.h)

Genera un'espressione di query speciale per ciò che altrimenti diventerà un'espressione di query foglia.

Sintassi

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

Parametri

[in] pConditionFactory

Tipo: IConditionFactory*

Oggetto IConditionFactory che può essere utilizzato per creare i nodi necessari.

[in] pszPropertyName

Tipo: LPCWSTR

Nome proprietà o NULL se non è presente alcun nome di proprietà.

[in] cop

Tipo: CONDITION_OPERATION

Tipo enumerato CONDITION_OPERATION che identifica l'operazione.

[in] pszValueType

Tipo: LPCWSTR

Tipo semantico che descrive i valori in pszValue e pszValue2.

[in] pszValue

Tipo: LPCWSTR

Stringa generata da IConditionGenerator::RecognizeNamedEntities che rappresenta il valore. Se pszValue2 non è NULL, questo rappresenta l'inizio dell'intervallo del valore.

[in] pszValue2

Tipo: LPCWSTR

Se non è NULL, una stringa generata da IConditionGenerator::RecognizeNamedEntities che rappresenta la fine dell'intervallo del valore. Se NULL, pszValue rappresenta un valore discreto.

[in] pPropertyNameTerm

Tipo: IRichChunk*

Puntatore a un oggetto IRichChunk contenente informazioni su quale parte di una stringa di input ha prodotto il nome della proprietà.

[in] pOperationTerm

Tipo: IRichChunk*

Puntatore a un oggetto IRichChunk contenente informazioni su quale parte di una stringa di input ha prodotto l'operazione.

[in] pValueTerm

Tipo: IRichChunk*

Puntatore a un oggetto IRichChunk contenente informazioni su quale parte di una stringa di input ha prodotto il valore.

[in] automaticWildcard

Tipo: BOOL

TRUE se la condizione generata deve restituire risultati che iniziano con il valore specificato, se significativo. FALSE se la condizione generata deve restituire risultati corrispondenti esattamente al valore specificato.

[out] pNoStringQuery

Tipo: BOOL*

VARIANT_TRUE se l'albero delle condizioni in ppQueryExpression deve essere la query completa o VARIANT_FALSE se la query completa deve essere una disgiunzione dell'albero delle condizioni in ppQueryExpression e l'albero delle condizioni che sarebbe stato usato se questo metodo avesse restituito S_FALSE.

[out, retval] ppQueryExpression

Tipo: ICondition**

Riceve un puntatore a un albero delle condizioni ICondition .

Valore restituito

Tipo: HRESULT

Restituisce uno dei valori seguenti oppure un valore di errore in caso contrario.

Codice restituito Descrizione
S_OK
È stata generata correttamente una condizione.
S_FALSE
Una condizione non è stata generata e il parser di query deve produrrne uno in un altro modo.

Commenti

Se questo metodo restituisce S_FALSE, il parser di query chiamante deve generare un nodo foglia N con questo nome di proprietà, operazione e valore. Se questo metodo restituisce S_FALSE e pNoStringQuery contiene VARIANT_FALSE, la query generata completa è una disgiunzione (OR) con il nodo foglia N e l'albero delle condizioni in ppQueryExpression come sottocondizioni.

Se questo metodo restituisce S_OK e pNoStringQuery contiene VARIANT_TRUE, l'albero delle condizioni in ppQueryExpression è la query completa.

Il valore di pszValue2 è diverso da NULL solo per una query di intervallo, ad esempio date:1/2/2003..1/30/2006, dove pszValue contiene il valore per 1/2/2003 e pszValue2 contiene il valore per 1/30/2006. Un generatore di condizioni può scegliere di rifiutare gli intervalli restituendo sempre S_OK quando pszValue2 non è NULL.

Un generatore di condizioni può ignorare in modo sicuro gli argomenti pPropertyNameTerm, pOperationTerm e pValueTerm. Tuttavia, li userebbe per produrre un nodo foglia con informazioni corrette sulle origini nella stringa di query del nome della proprietà, dell'operatore e del valore, passandoli a MakeLeaf.

In molti casi, un generatore di condizioni può ignorare l'argomento automaticWildcard perché non si applica. Tuttavia, se l'albero delle condizioni generate esegue una ricerca di stringhe, in cui sia una ricerca di prefisso (COP_VALUE_STARTSWITH da CONDITION_OPERATION) che una ricerca della stringa esatta (COP_EQUAL da CONDITION_OPERATION) sono significative, la prima deve essere generata quando automaticWildcard è VARIANT_TRUE e la seconda quando automaticWildcard è VARIANT_FALSE.

Requisiti

Requisito Valore
Client minimo supportato Windows XP con SP2, Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione structuredquery.h

Vedi anche

CONDITION_CREATION_OPTIONS

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionGenerator

Riferimento