セッションおよびデータベース情報の取得

外部アプリケーションの次のコードは、Session メソッドおよび DatabaseDesc メソッドの一部を示します。データベースに接続するには、セッション オブジェクトが必要です。セッション オブジェクトにより、データベースに関する情報 (SQL 接続文字列など) と現在ログオンしているユーザーに関する情報を取得できます。プロセスには 3 つのステップがあります。

  1. セッション オブジェクトを作成します。
  2. データベースにログオンします。
  3. 必要なタスクを実行します。

詳しくは、「Session オブジェクト」「DatabaseDesc オブジェクト」を参照してください。

次のコードは、Session の DatabaseDesc オブジェクトに格納されている情報と、すべてのユーザー関連情報を印刷します。このサブルーチンは StdOut と呼ばれる別のルーチンを使用します。このルーチンは、引数をメッセージ ボックスに出力します。

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 
' 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 

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); 

フィードバック