Condividi tramite


Metodo IConditionFactory::Resolve (strutturataquery.h)

Esegue una varietà di trasformazioni in un albero delle condizioni, tra cui le seguenti: risolve le condizioni con espressioni di data/ora relative a condizioni con data/ora assoluta (come VT_FILETIME); trasforma altre entità denominate riconosciute in alberi di condizione con valori effettivi; semplifica gli alberi delle condizioni; sostituisce le proprietà virtuali o composte con alberi OR di altre proprietà; rimuove gli alberi delle condizioni risultanti dalle query con parole chiave delle proprietà che non avevano alcuna condizione applicata.

Sintassi

HRESULT Resolve(
  [in]          ICondition                      *pc,
  [in]          STRUCTURED_QUERY_RESOLVE_OPTION sqro,
  [in]          const SYSTEMTIME                *pstReferenceTime,
  [out, retval] ICondition                      **ppcResolved
);

Parametri

[in] pc

Tipo: ICondition*

Puntatore a un oggetto ICondition da risolvere.

[in] sqro

Tipo: STRUCTURED_QUERY_RESOLVE_OPTION

Specifica zero o più flag di STRUCTURED_QUERY_RESOLVE_OPTION . Per Windows 7 e versioni successive, il flag di SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES viene aggiunto automaticamente a sqro.

[in] pstReferenceTime

Tipo: SYSTEMTIME const*

Puntatore a un valore SYSTEMTIME da usare come data e ora di riferimento. Un puntatore Null può essere passato se sqro è impostato su SQRO_DONT_RESOLVE_DATETIME.

[out, retval] ppcResolved

Tipo: ICondition**

Riceve un puntatore al nuovo oggetto ICondition in cui sono stati risolti tutti i campi per avere valori di tipo VT_FILETIME. Questo nuovo albero delle condizioni è la versione risolta di pc.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

In un albero delle condizioni prodotto dal metodo Parse e restituito da GetQuery, le foglie si associano alle proprietà con restrizioni per queste proprietà e generano un albero delle condizioni che viene parzialmente completato. Il metodo IConditionFactory::Resolve termina tale albero delle condizioni tramite un processo noto come risoluzione. L'albero delle condizioni di input non viene modificato in alcun modo. L'albero delle condizioni di output può condividere parti della condizione di input che non contiene nodi foglia con valori di data/ora non risolti.

Nota La risoluzione di un nodo foglia produce spesso un nodo non foglia.
 
Ad esempio, La query strutturata supporta espressioni di data/ora relative, che rimangono non risolte fino a quando non vengono applicate ad alcuni tempi di riferimento. In un nodo foglia con tipo semantico System.StructuredQueryType.DateTime, il valore può essere un VT_FILETIME o un VT_LPWSTR. VT_FILETIME è una data/ora assoluta, quindi è già risolta. VT_LPWSTR è una rappresentazione stringa di un'espressione data/ora relativa. L'ora di riferimento specificata deve essere un'ora locale, ma i tempi risolti nell'espressione di query risultante saranno in Utc (Coordinated Universal Time).

StrutturaQuerySample illustra come leggere le righe dalla console, analizzarle usando lo schema di sistema e visualizzare gli alberi delle condizioni risultanti.

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 strutturataquery.h
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

CONDITION_OPERATION

CONDITION_TYPE

ICondition

ICondition2

IConditionFactory

IConditionFactory2

Riferimento