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