< Vorherige Lektion | Nächste Lektion >

Ergebnismengen

Sie bewegen sich durch die Ergebnismenge (ResultSet-Objekt), die bei einer Abfrage zurückgegeben wird, um die Daten zu den enthaltenen Datensätzen abzurufen.

Führen Sie bei Verwendung eines ResultSet-Objekts die folgenden Schritte aus:

  1. Erstellen Sie das ResultSet-Objekt. Verwenden Sie zur Erstellung eines ResultSet-Objekts die Methode BuildResultSet oder BuildSQLQuery des Sitzungsobjekts. Beide Methoden geben ein ResultSet-Objekt zurück, das die Abfrage ausführen kann, aber keine Daten enthält.
  2. Führen Sie die Abfrage aus, um das ResultSet-Objekt mit Daten zu füllen. Rufen Sie zur Ausführung der Abfrage die Methode Execute oder ExecuteAndCountRecords des ResultSet-Objekts auf. Diese Methoden füllen das ResultSet-Objekt mit Daten aus der Datenbank.
  3. Navigieren Sie durch die Ergebnisdaten, bis Sie den gewünschten Datensatz gefunden haben. Rufen Sie die Methode MoveNext auf, um zum ersten Datensatz in der Ergebnismenge zu navigieren. Diese Methode initialisiert den Cursor und bewegt ihn zum ersten Datensatz. Jetzt können Sie mit den Methoden von "ResultSet" Informationen zu den Feldern des ersten Datensatzes abrufen. Verwenden Sie erneut die Methode MoveNext, um zu den nachfolgenden Datensätzen zu navigieren. Jetzt können Sie mit den Methoden von "ResultSet" Informationen zu den Feldern des aktuellen Datensatzes abrufen.
  4. Rufen Sie die Werte aus den Feldern des Datensatzes ab. Jetzt können Sie mit den Methoden von "ResultSet" Informationen zu den Feldern des Datensatzes abrufen.

Beispiel

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); 
Die nützlichsten Abfragen umfassen Filter, die Sie definieren, um bestimmte Datensätze, die festgelegten Kriterien entsprechen, abzurufen. In der nächsten Lektion wird die Definition von Suchkriterien beschrieben.
< Vorherige Lektion | Nächste Lektion >

Feedback