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:
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.
' 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
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);