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);