VBScript
dbDesc.GetLogin
Perl
$dbDesc->GetLogin();
L'accesso al database non è uguale all'accesso Rational ClearQuest dell'utente. L'accesso al database si riferisce al nome dell'account che Rational ClearQuest utilizza durante l'inizializzazione di transazioni con il database. Questo valore viene impostato in anticipo dall'amministratore del database.
È necessario che l'utente abbia effettuato l'accesso ad un database affinché questo metodo possa restituire un valore appropriato. Per i writer del codice hook, Rational ClearQuest registra l'utente nel database automaticamente. Se si sta scrivendo un'applicazione autonoma, è necessario creare manualmente un oggetto Session e richiamare il metodo UserLogon prima di richiamare questo metodo.
Per la maggior parte degli utenti, questo metodo restituisce l'accesso in lettura/scrittura associato al database. Tuttavia, se l'utente associato alla sessione corrente è l'amministratore Rational ClearQuest, questo metodo restituisce l'accesso del proprietario del database. In modo simile, se l'utente dispone di un accesso in sola lettura, questo metodo restituisce l'accesso in sola lettura.
Se si dispone dell'accesso al repository schema, è possibile richiamare le informazioni su questo database dell'utente accedendo alle proprietà dell'oggetto Database corrispondente.
VBScript
Nel seguente esempio viene mostrato come accedere al database da un'applicazione Visual Basic.
set sessionObj = CreateObject("CLEARQUEST.SESSION") ' Login to each database successively. databases = sessionObj.GetAccessibleDatabases("MASTR","","") For Each db in databases If Not db.GetIsMaster Then ' Logon to the database. sessionObj.UserLogon "tom", "gh36ak3", dbName, AD_PRIVATE_SESSION, dbSetName ' Get the database login and password for "tom" dbLogin = db.GetLogin dbPassword = db.GetPassword ' ... End If Next
Perl
use CQPerlExt;
#Start a Rational ClearQuest session
$sessionObj = CQSession::Build();
#Get a list of accessible database description objects
$databases = $sessionObj->GetAccessibleDatabases("MASTR", "", "");
#Get the number of databases
$count = $databases->Count();
#Foreach accessible database that is not the master database
for($x=0;$x<$count;$x++){
$db = $databases->Item($x);
if (! $db->GetIsMaster() ) {
$dbName = $db->GetDatabaseName();
#Logon to the database as "tom" with password "gh36ak3"
$sessionObj->UserLogon( "tom", "gh36ak3", $dbName, $dbSetName );
#Get the database login and password for "tom"
$dbLogin = $db->GetLogin();
$dbPassword = $db->GetPassword();
#...
}
}
CQSession::Unbuild($sessionObj);