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 |
---|---|
|
È stata generata correttamente una condizione. |
|
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
Riferimento