Führen Sie bei Verwendung eines ResultSet-Objekts die folgenden Schritte aus:
Das folgende Codebeispiel veranschaulicht, wie Sie Methoden des ResultSet-Objekts verwenden können, um sich durch die von der Abfrage zurückgegebenen Daten zu bewegen:
use CQPerlExt;
#Rational-ClearQuest-Sitzung starten
$SessionObj = CQSession::Build();
$dbsetname = "CQMS.SAMPL.HOME";
#Liste der verfügbaren Datenbanken aktualisieren
$databases = $SessionObj->GetAccessibleDatabases("MASTR", "", $dbsetname);
#Anmeldung an Datenbank
$SessionObj->UserLogon("admin","","SAMPL",$dbsetname);
#Durch Aufrufen der Methode "BuildQuery(record_type)" eine Abfrage erstellen, Datensatz als Argument angeben
$querydef = $SessionObj->BuildQuery("defect");
# Sie verwenden die Methode "BuildField(field_name)" für jeden Feldwert, den Sie aufnehmen möchten, und für jeden Datensatz,
# der in der Ergebnismenge für die Abfrage zurückgegeben wird:
$querydef->BuildField("id");
$querydef->BuildField("headline");
$querydef->BuildField("owner.login_name");
$querydef->BuildField("submit_date");
# Die Ergebnismenge "BuildResultSet(query_def_name)", die Sie erstellen, wird die von der Abfrage zurückgegebenen Datensätze enthalten.
$resultset = $SessionObj->BuildResultSet($querydef);
# Der folgende Befehl führt die Abfrage aus und zählt die Anzahl der Datensätze in der Ergebnismenge.
$ct = $resultset->ExecuteAndCountRecords();
for ($i = 0; $i < $ct; $i++) {
# Sie verwenden die Methode "MoveNext", um durch die Datensätze in der Ergebnismenge zu navigieren:
$resultset->MoveNext();
# Sie können die Ergebnismenge auch ohne Verwendung des Zählers in einer Schleife durchlaufen:
# while ( $resultset->MoveNext == $CQPerlExt::CQ_SUCCESS ) {
# Sie verwenden die Methode "GetColumnValue(column_number)", um die Feldwerte, die laut Ihrer Angabe für jeden Datensatz
# zurückgegeben werden sollen (durch Aufrufen der Methode "BuildField" für jedes aufzunehmende Feld), abzurufen:
print $resultset->GetColumnValue(1);
print " ";
print $resultset->GetColumnValue(2);
print " ";
print $resultset->GetColumnValue(3);
print " ";
print $resultset->GetColumnValue(4);
print "\n";
}
# Es gibt auch Methoden zum Ermitteln von Spalteneigenschaften, wie z. B. die folgenden:
# ResultSet:GetNumberOfColumns
# ResultSet:GetColumnType (alle Werte werden als Zeichenfolgen zurückgegeben, können jedoch formatiert werden)
#ResultSet:GetColumnLabel
CQSession::Unbuild($SessionObj);