< Anterior | Próximo >

Conjuntos de resultados

Você se move pelo ResultSet retornado por meio de uma consulta para recuperar os dados para cada registro incluído.

Aqui estão as etapas a serem seguidas ao usar um objeto ResultSet:

  1. Crie o objeto ResultSet. Para criar um objeto ResultSet, use o método BuildResultSet ou o método BuildSQLQuery do objeto Session. Ambos os métodos retornam um objeto ResultSet que está pronto para executar a consulta, mas que não contém nenhum dado.
  2. Execute a consulta para preencher o ResultSet com dados. Para executar a consulta, você pode chamar o método Execute ou ExecuteAndCountRecords do objeto ResultSet. Esses métodos preenchem o ResultSet com dados do banco de dados.
  3. Navegue pelos dados resultantes até localizar o registro que deseja. Para mover o primeiro registro no conjunto de resultados, chame o método MoveNext, que inicializa o cursor e o move para o primeiro registro. Você pode então usar os métodos do ResultSet para obter informações sobre os campos do primeiro registro. Para mover os registros subsequentes, use o método MoveNext novamente. Você pode então usar os métodos do ResultSet para obter informações sobre os campos do registro atual.
  4. Recupere os valores dos campos do registro. Use os métodos do objeto ResultSet para obter informações sobre os campos desse registro.

Exemplo

O exemplo de código a seguir ilustra como usar os métodos do objeto ResultSet para mover-se pelos dados retornados pela 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); 
As consultas mais úteis incluem filtros que foram definidos por você para recuperar registros específicos que atendem determinados critérios. A próxima lição descreve como definir critérios de procura.
< Anterior | Próximo >

Feedback