< Anterior | Siguiente >

Conjuntos de resultados

El desplazamiento se efectúa a través del ResultSet devuelto por una consulta para recuperar los datos para cada registro que incluya.

Los pasos que se deben seguir al utilizar un objeto ResultSet son los siguientes:

  1. Cree el objeto ResultSet. Para crear un objeto ResultSet, utilice el método BuildResultSet o el método BuildSQLQuery del objeto Session. Ambos métodos devuelven un objeto ResultSet que está listo para ejecutar la consulta, pero no contiene datos.
  2. Ejecute la consulta para rellenar el ResultSet con datos. Para ejecutar la consulta, debe llamar al método Execute o ExecuteAndCountRecords del objeto ResultSet. Estos métodos rellenan ResultSet con datos de la base de datos.
  3. Navegue a través de los datos resultantes hasta que encuentre el registro que desea. Para desplazarse al primer registro del conjunto de resultados, llame al método MoveNext, que inicializa el cursor y lo desplaza al primer registro. A continuación, puede utilizar los métodos ResultSet para obtener información sobre los campos del primer registro. Para desplazarse a los registros siguientes, vuelva a utilizar el método MoveNext. A continuación, puede utilizar los métodos ResultSet para obtener información sobre los campos del registro actual.
  4. Recupere los valores de los campos del registro. Utilice los métodos del objeto ResultSet para obtener información sobre los campos del registro.

Ejemplo

En el siguiente ejemplo de código se ilustra cómo utilizar métodos del objeto ResultSet para moverse a través de los datos devueltos por la consulta:

use CQPerlExt; 
#Start a Rational ClearQuest session 
$SessionObj = CQSession::Build(); 
$dbsetname = "CQMS.SAMPL.HOME"; 

#Refresh list of accessible databases 
$databases = $SessionObj->GetAccessibleDatabases("MASTR", "", $dbsetname); 

#Log into a database 
$SessionObj->UserLogon("admin","","SAMPL",$dbsetname); 

#Create a Query by calling the BuildQuery(record_type) method, You specify a record type as the argument
$querydef = $SessionObj->BuildQuery("defect") ; 
#  You use the BuildField (field_name) method for each field value that you want included for each record 
#  returned in the result set for the query:
$querydef->BuildField("id"); 
$querydef->BuildField("headline"); 
$querydef->BuildField("owner.login_name") ; 
$querydef->BuildField("submit_date") ; 

# The BuildResultSet(query_def_name) you build will contain the records returned by the query: 
$resultset = $SessionObj->BuildResultSet($querydef); 

# The following command runs the query and counts the number of records in the result set.
$ct = $resultset->ExecuteAndCountRecords(); 

for ($i = 0; $i < $ct; $i++) { 
#  You use the MoveNext method to iterate through the records in the ResultSet:
$resultset->MoveNext(); 
# You can also loop through ResultSet without using the count, like this:
# while ( $resultset->MoveNext == $CQPerlExt::CQ_SUCCESS ) {

#  You use the GetColumnValue(column_number) method to get the field values that you specified to be returned 
# for each record (by calling the BuildField method for each field to include):
   print $resultset->GetColumnValue(1); 
   print " "; 
   print $resultset->GetColumnValue(2); 
   print " "; 
   print $resultset->GetColumnValue(3); 
   print " "; 
   print $resultset->GetColumnValue(4); 
   print "\n"; 
   } 

# There are also methods to discover column properties such as these methods: 
# ResultSet:GetNumberOfColumns 
# ResultSet:GetColumnType (all values are returned as strings, but you may wish to format them) 
#ResultSet:GetColumnLabel

CQSession::Unbuild($SessionObj); 
Las consultas más útiles son las de filtros definidos para recuperar registros específicos que cumplan ciertos criterios. En la lección siguiente se describe cómo definir los criterios de búsqueda.
< Anterior | Siguiente >

Comentarios