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