Quando si utilizza un oggetto ResultSet è necessario effettuare le seguenti operazioni:
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);