외부 애플리케이션의 다음 코드는 일부 Session 및 DatabaseDesc 메소드를 설명합니다. 데이터베이스에 연결하려면 Session 오브젝트가 있어야 합니다. Session 오브젝트를 사용하면 데이터베이스에 대한 정보(예: SQL 연결 문자열) 및 현재 로그온한 사용자에 대한 정보를 가져올 수 있습니다. 프로세스는 세 단계로 구성됩니다.
자세한 정보는 Session 오브젝트 및 DatabaseDesc오브젝트를 참조하십시오.
다음 코드는 사용자 관련 정보와 Session의 DatabaseDesc 오브젝트에 저장된 정보를 출력합니다. 이 서브루틴은 메시지 상자에 인수를 인쇄하는 StdOut이라는 다른 루틴을 사용합니다.
' 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
' generated by GetDatabaseConnectString
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);