Obtención de información de sesión y base de datos

El código siguiente de una aplicación externa ilustra algunos de los métodos de Session y DatabaseDesc. Para conectar a la base de datos se necesita un objeto Session. El objeto Session le permite obtener información sobre la base de datos (como, por ejemplo, la serie de conexión de SQL) y el usuario que ha iniciado la sesión actualmente. El proceso consta de tres pasos:

  1. Crear el objeto Session.
  2. Iniciar la sesión en la base de datos.
  3. Realizar las tareas que se desea.

Para obtener más información, consulte los apartados Objeto Session y Objeto DatabaseDesc.

El código siguiente imprime la información almacenada en el objeto DatabaseDesc de Session, así como toda la información relacionada con el usuario. Esta subrutina utiliza otra rutina denominada StdOut, que imprime los argumentos en un recuadro de mensaje.

VBScript

' Conectar a través de OLE a Rational ClearQuest
Set session = CreateObject("CLEARQUEST.SESSION")

' nombre_inicioSesión, contraseña y dbname son series
' que se han establecido en otra parte
session.UserLogon "joe","", dbname, AD_PRIVATE_SESSION, ""

Set dbDesc = session.GetSessionDatabase
StdOut "DB name = " & dbDesc.GetDatabaseName
StdOut "DB set name = " & dbDesc.GetDatabaseSetName

' Debe iniciar la sesión con el privilegio de superusuario o, de lo contrario, 
' GetDatabaseConnectString genera un error
StdOut "DB connect string = " & dbDesc.GetDatabaseConnectString

StdOut "user login name = " & session.GetUserLoginName 
StdOut "user full name = " & session.GetUserFullName 
StdOut "user email = " & session.GetUserEmail
StdOut "user phone = " & session.GetUserPhone
StdOut "misc user info = " & session.GetUserMiscInfo

StdOut "user groups:"
Set userGroups = session.GetUserGroups 

If IsArray(userGroups) Then 
   for each onename in userGroups
      StdOut " group " & onename 
   next 
End If 

REM Inicio de Global Script StdOut

sub StdOut(Msg)

   msgbox Msg

end sub

REM Fin de Global Script StdOut 

Perl

use lib "E:\\Archivos de Programa\\Rational\\common\\lib";



use CQPerlExt;



$CQsession = CQSession::Build();



$CQsession->UserLogon("admin", "", "perl2", "");

    

$dbDesc = $CQsession->GetSessionDatabase();

print "DB name = ", $dbDesc->GetDatabaseName(), "\n";

print "DB set name = ", $dbDesc->GetDatabaseSetName(), "\n";

print "DB connect string = ", $dbDesc->GetDatabaseConnectString(), "\n";

    

print "User login name = ", $CQsession->GetUserLoginName(), "\n";

print "User full name = ", $CQsession->GetUserFullName(), "\n";

print "User email = ", $CQsession->GetUserEmail(), "\n";

print "User phone = ", $CQsession->GetUserPhone(), "\n";

print "Misc user info = ", $CQsession->GetUserMiscInfo(), "\n";

    

print "User groups: \n";

$userGroups = $CQsession->GetUserGroups();

if (!@$userGroups) {

   #Código para manejar si no existe ningún grupo de usuarios

   print "This user does not belong to any groups\n";

   }

else {

    # imprimir todos los grupos

    foreach $groupname (@$userGroups) {

        print "Group $groupname\n";

    }

}

CQSession::Unbuild($CQsession); 


Comentarios