Ejecución de una consulta e informe en el conjunto del resultado

El cliente de Rational ClearQuest ofrece una posibilidad de informe eficaz en un entorno de interfaz gráfica de usuario (GUI). La API de Rational ClearQuest también ofrece soporte para informe programático.

A veces, sólo se necesitan los resultados sin formato en lugar de un informe muy formateado. La subrutina siguiente es una aplicación externa:

A continuación de los ejemplos de código de VBScript y Perl se incluyen otros ejemplos de código de Perl que muestran:

VBScript

Sub RunBasicQuery(session, querydef) 
' Los parámetros para esta subrutina son un objeto Session y un 
' objeto QueryDef. Se presupone que QueryDef es válido (por ejemplo,
' se ha utilizado BuildField para seleccionar uno o más campos
' que recuperar). 

   Dim rsltset ' un objeto ResultSet 
   Dim status ' Long 
   Dim column ' Long 
   Dim num_columns ' Long 
   Dim num_records ' Long 

   Set rsltset = session.BuildResultSet(querydef) 
   rsltset.Execute 

   StdOut "primary entity def for query == " & _
            rsltset.LookupPrimaryEntityDefName 

   num_columns = rsltset.GetNumberOfColumns 
   num_records = 0 
   status = rsltset.MoveNext 
   Do While status = AD_SUCCESS 
      num_records = num_records + 1 
      StdOut "Record #" & num_records 

      ' Nota: los índices del conjunto del resultado se basan en 1..N, no en el
      '  0..N-1 habitual 
   column = 1 
   Do While column <= num_columns 
         ' ToStr convierte el argumento en una serie
         StdOut " " & rsltset.GetColumnLabel(column) & "=" & _
            ToStr(rsltset.GetColumnValue(column)) 
         column = column + 1 
      Loop 

      StdOut "" 
      status = rsltset.MoveNext 
   Loop 
End Sub 

REM Inicio de Global Script StdOut
sub StdOut(Msg)
   msgbox Msg
end sub
REM Fin de Global Script StdOut 

Perl

sub RunBasicQuery {
my($session)=@_[0];
my($querydef)=@_[1];
#  Los parámetros de esta subrutina son un objeto Session 
#  y un objeto QueryDef. Se presupone que QueryDef 
#  es válido (por ejemplo, se ha utilizado BuildField para seleccionar 
#  uno o más campos que recuperar). 

my ($rsltset);      #  Es un objeto ResultSet 
my ($status);
my ($column);
my ($num_columns);
my ($num_records);

$rsltset = $session->BuildResultSet(querydef);
$rsltset->Execute;

print "primary entity def for query == ", 
$rsltset->LookupPrimaryEntityDefName;

   $num_columns = $rsltset->GetNumberOfColumns;
   $num_records = 0;
   $status = $rsltset->MoveNext;
   while ($status == $CQPerlExt::CQ_SUCCESS) {
      $num_records = $num_records + 1;
      print "Record #", $num_records;
      #  Nota: los índices del conjunto del resultado se basan en 1..N, no en
      # 0..N-1 habitual 
      $column = 1;
      while ($column <= $num_columns) {
         print " ", $rsltset->GetColumnLabel($column), "=", 
         $rsltset->GetColumnValue($column);
         $column = $column + 1;
      }
      print "";
      $status = $rsltset->MoveNext;
   }
} 


Comentarios