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

' Connect via OLE to Rational ClearQuest
Set session = CreateObject("CLEARQUEST.SESSION")

' login_name, password, and dbname are Strings that have
' been set elsewhere
session.UserLogon "joe","", dbname, AD_PRIVATE_SESSION, ""

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

' You must log in with superuser privilege or an error will be 
' 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 Start of Global Script StdOut

sub StdOut(Msg)

   msgbox Msg

end sub

REM End of Global Script StdOut 

Perl

use lib "E:\\Program Files\\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) {

   #Code to handle if no user groups exist

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

   }

else {

    # print out all groups

    foreach $groupname (@$userGroups) {

        print "Group $groupname\n";

    }

}

CQSession::Unbuild($CQsession); 

Feedback