< Indietro | Avanti >

Serie di risultati

È possibile spostarsi all'interno di un ResultSet restituito da una query per richiamare i dati per ciascun record contenuto.

Quando si utilizza un oggetto ResultSet è necessario effettuare le seguenti operazioni:

  1. Creare l'oggetto ResultSet. Per creare un oggetto ResultSet, è possibile utilizzare il metodo BuildResultSet o BuildSQLQuery dell'oggetto Session. Entrambi questi metodi restituiscono un oggetto ResultSet pronto per eseguire la query, ma che non contiene dati.
  2. Eseguire la query per immettere i dati nel ResultSet. Per eseguire la query, richiamare il metodo Execute o ExecuteAndCountRecords dell'oggetto ResultSet. Tali metodi inseriscono nel ResultSet i dati provenienti dal database.
  3. Spostarsi attraverso i dati risultanti fino a trovare il record desiderato. Per spostarsi sul primo record nella serie di risultati, richiamare il metodo MoveNext, il quale inizializza il cursore e lo sposta sul primo record. È possibile, quindi, utilizzare i metodi di ResultSet per ottenere informazioni relative ai campi del primo record. Per spostarsi sui record successivi, utilizzare di nuovo il metodo MoveNext. È possibile, quindi, utilizzare i metodi di ResultSet per ottenere informazioni relative ai campi del record corrente.
  4. Richiamare i valori dai campi del record. Utilizzare i metodi dell'oggetto ResultSet per ottenere informazioni sui campi del record.

Esempio

Il seguente esempio di codice illustra come utilizzare i metodi dell'oggetto ResultSet per spostarsi attraverso i dati restituiti dalla query:

use CQPerlExt; 
#Avviare una sessione Rational ClearQuest 
$SessionObj = CQSession::Build(); 
$dbsetname = "CQMS.SAMPL.HOME"; 

#Aggiornare l'elenco di database accessibili 
$databases = $SessionObj->GetAccessibleDatabases("MASTR", "", $dbsetname); 

#Accedere a un database 
$SessionObj->UserLogon("admin","","SAMPL",$dbsetname); 

#Creare una query richiamando il metodo BuildQuery(tipo_record), specificare un tipo di record come argomento
$querydef = $SessionObj->BuildQuery("defect"); 
#  Utilizzare il metodo BuildField (nome_campo) per ciascun valore campo da includere per ciascun record 
#  restituito nella serie di risultati per la query:
$querydef->BuildField("id"); 
$querydef->BuildField("headline"); 
$querydef->BuildField("owner.login_name"); 
$querydef->BuildField("submit_date"); 

# Il BuildResultSet(nome_def_query) che si crea conterrà i record restituiti dalla query: 
$resultset = $SessionObj->BuildResultSet($querydef); 

# Il seguente comando esegue la query e conta il numero di record nella serie di risultati.
$ct = $resultset->ExecuteAndCountRecords(); 

for ($i = 0; $i < $ct; $i++) { 
#  Utilizzare il metodo MoveNext per spostarsi attraverso i record nel ResultSet:
$resultset->MoveNext(); 
# È anche possibile muoversi in loop nel ResultSet senza utilizzare il conteggio, ad esempio:
# ( $resultset->MoveNext == $CQPerlExt::CQ_SUCCESS ) {

# Utilizzare il metodo GetColumnValue(numero_colonna) per richiamare i valori campo specificati da restituire 
# per ciascun record (richiamando il metodo BuildField per ciascun campo da includere):
   print $resultset->GetColumnValue(1); 
   print " "; 
   print $resultset->GetColumnValue(2); 
   print " "; 
   print $resultset->GetColumnValue(3); 
   print " "; 
   print $resultset->GetColumnValue(4); 
   print "\n"; 
   } 

# Esistono anche metodi per rilevare proprietà colonna, come: 
# ResultSet:GetNumberOfColumns 
# ResultSet:GetColumnType (tutti i valori vengono restituiti come stringhe, ma è possibile formattarli) 
#ResultSet:GetColumnLabel

CQSession::Unbuild($SessionObj); 
Le query più utili includono i filtri definiti per richiamare record specifici che rispettano i criteri di ricerca. La successiva lezione descrive come definire i criteri di ricerca.
< Indietro | Avanti >

Feedback