Oggetto QueryDef

Un oggetto QueryDef definisce i parametri per una query, che viene utilizzata per richiamare dei record specifici da un database.

Un oggetto QueryDef contiene un'espressione della query e un elenco di campi di visualizzazione. L'espressione della query definisce i parametri di ricerca per la query e può contenere una complessa serie di istruzioni condizionali. Per eseguire la query, è necessario creare un oggetto ResultSet e richiamare il relativo metodo Execute. (È possibile utilizzare il metodo BuildResultSet dell'oggetto Session per creare l'oggetto ResultSet.) L'oggetto ResultSet utilizza l'elenco di campi di visualizzazione nell'oggetto QueryDef per riepilogare i risultati della ricerca.

Per creare un oggetto QueryDef,

  1. Richiamare il metodo BuildQuery dell'oggetto Session. I metodi BuildQuery restituiscono un oggetto QueryDef con campi di visualizzazione e filtri non definiti.
  2. Aggiungere filtri e campi per la query all'oggetto QueryDef.

Per creare una query che restituirà tutti i record di un certo tipo, creare un oggetto QueryDef, ma non aggiungervi filtri. Invece, aggiungere i campi da restituire utilizzando il metodo BuildField dell'oggetto QueryDef.

È possibile aggiungere filtri e nodi ad un oggetto QueryDef per creare query più complesse. I nodi di un oggetto QueryDef sono costituiti da uno o più oggetti QueryFilterNode, ognuno dei quali contenenti uno o più filtri. I nodi raggruppano tutti relativi filtri in base ad un singolo operatore booleano. Utilizzare il metodo BuildFilterOperator dell'oggetto QueryDef per creare il nodo root in questa struttura ad albero. Dopo tale operazione, utilizzare i metodi di QueryFilterNode per definire i nodi e i filtri rimanenti. I filtri stessi possono utilizzare altri operatori di confronto per verificare la relazione di un campo rispetto ai dati specificati.

Ad esempio, nella seguente istruzione:

Select * from <some defect> where (....) AND1 ((...) OR2 ( (...) AND3( (...) OR4 (...))))

l'operatore root è AND (AND1). Il relativo operatore nodo figlio del livello successivo è un OR (OR2). La gerarchia completa è:

   AND1 (AND1 is the root operator)
   \
      OR2 (OR2 is suboperator of AND1)
       \
         AND3 (AND3 is suboperator of OR2)
         \
            OR4 (OR4 is suboperator of AND3) 
Nota: è possibile inoltre costruire una query da una stringa di query SQL nativo utilizzando il metodo BuildSQLQuery dell'oggetto Session. Tuttavia, questa tecnica non crea un oggetto QueryDef.

Per un esempio della modalità di utilizzo dell'oggetto QueryDef, consultare Esecuzione di una query con filtri dinamici.


Feedback