GetAccessibleDatabases

Descripción

Devuelve una lista de las bases de datos que están disponibles para que el usuario especificado inicie la sesión.

Este método sólo devuelve las bases de datos para las que el usuario especificado tiene permitido el inicio de sesión. Si el parámetro nombre_inicioSesión_usuario contiene una serie vacía, este método devuelve una lista de todas las bases de datos asociadas al depósito de esquemas especificado (base de datos maestra).

Puede examinar cada objeto DatabaseDesc para obtener el nombre de la base de datos correspondiente, el nombre del conjunto de bases de datos y otra información que necesite para iniciar la sesión en la misma.

Nota: El método GetAccessibleDatabases no requiere un inicio de sesión de usuario; se puede llamar desde un objeto Session construido antes de un inicio de sesión de usuario. Si se ha habilitado la autenticación LDAP, el nombre de inicio de sesión del usuario puede no ser el mismo que el nombre del usuario de Rational ClearQuest. Consulte el apartado Impacto sobre las API existentes para obtener más información.

Sintaxis

VBScript

session.GetAccessibleDatabases
(nombre_db_maestra,
nombre_inicioSesión_usuario,conjunto_basesDatos) 

Perl

session->GetAccessibleDatabases(nombre_db_maestra,
nombre_inicioSesión_usuario,conjunto_basesDatos) 
Identificador
Descripción
session
El objeto Session que representa la sesión de acceso a la base de datos actual.
nombre_db_maestra
Un valor String que especifica el nombre de la base de datos lógica de Rational ClearQuest del depósito de esquemas. En la mayoría de casos, este valor es "MASTR".
nombre_inicioSesión_usuario
Un valor String que especifica el nombre de inicio de sesión del usuario. Al utilizar una serie vacía para este argumento, se indica a esta función que devuelva una lista de todas las bases de datos asociadas a este depósito de esquemas, no sólo aquellas a las que puede acceder un usuario específico.
conjunto_basesDatos
Un valor String que especifica el conjunto de bases de datos en el que buscar bases de datos a las que se puede acceder. Por omisión, este argumento debe contener la serie vacía, puesto que causa que la función utilice el nombre del conjunto de bases de datos del producto por omisión (es decir, el número de versión del producto).
Valor de retorno
Para VBScript, una matriz de variantes, conteniendo cada un objeto DatabaseDesc.

Para Perl, una recopilación del objeto DatabaseDescs.

Ejemplo

VBScript

set sessionObj = GetSession 

' Obtener la lista de bases de datos del 
' conjunto de bases de datos maestra. 
databases = sessionObj.GetAccessibleDatabases("MASTR","admin","")
for each db in databases 
   ' Obtener el nombre de la base de datos 
   dbName = db.GetDatabaseName 
   sessionObj.UserLogon "admin", "", dbName, AD_PRIVATE_SESSION, ""

   dbConnectString = db.GetDatabaseConnectString
Next



El código siguiente proporciona un MsgBox que indica la información del proveedor 
de conexión y el nombre lógico para todas las bases de datos de usuario de un
dbset específico.

Sub Test()

Dim  session 

Dim databases

Dim dbConnectString

Dim dbConnectName

Dim db

Set session = CreateObject("CLEARQUEST.SESSION")

databases = session.GetAccessibleDatabases("MASTR", "admin", "")

session.UserLogon "admin", "", "SAMPL", AD_PRIVATE_SESSION, ""

For Each db In databases

   dbConnectString = db.GetDatabaseConnectString

   dbConnectName = db.GetDatabaseName

   MsgBox dbConnectString

   MsgBox dbConnectName

Next

End Sub 

Perl

use CQPerlExt;

#Iniciar una sesión de Rational
ClearQuest

$sessionObj = CQSession::Build();

#Obtener una lista de bases de datos a las que se puede acceder
$databases = $sessionObj->GetAccessibleDatabases("MASTR", "admin", "");
$count = $databases->Count();

#Para cada base de datos a la que se puede acceder, iniciar la sesión
#como joe con la contraseña gh36ak3

for($x=0;$x<$count;$x++){

   $db = $databases->Item($x);
   $dbName = $db->GetDatabaseName();
   # Iniciar la sesión en la base de datos 
   $sessionObj->UserLogon( "joe", "gh36ak3", $dbName, "" );
   #...
   }
CQSession::Unbuild($sessionObj); 


Comentarios