Representación de la base de datos (tabular)

En el modo tabular, el concepto de base de datos es similar a los conceptos de motor relacional y modelos multidimensionales; la base de datos es el contenedor de todos los objetos del modelo tabular.

Representación de la base de datos

La base de datos es el lugar donde residen todos los objetos que forman un modelo tabular. Contenidos en la base de datos, el programador encuentra objetos como conexiones, tablas, roles y muchos otros.

Base de datos en AMO

Cuando use AMO para administrar una base de datos de modelo tabular, el objeto Database en AMO coincide de forma unívoca con con el objeto lógico de la base de datos de un modelo tabular.

[!NOTA]

Para obtener acceso a un objeto de base de datos, en AMO, el usuario necesita tener acceso a un objeto de servidor y conectarse a él.

Base de datos en ADOMD.Net

Al utilizar ADOMD para consultar una base de datos modelo tabular, el sentido de utilizar o de conectarse a una base de datos específica se obtiene a través del objeto AdomdConnection.

Puede conectarse directamente a una base de datos utilizando el fragmento de código siguiente:

using ADOMD = Microsoft.AnalysisServices.AdomdClient;
…
   ADOMD.AdomdConnection currrentCnx = new ADOMD.AdomdConnection("Data Source=<<server\instance>>;Catalog=<<database>>");
   currrentCnx.Open();
…

Además, en un objeto de conexión existente (que no se ha cerrado) puede cambiar la base de datos actual por otra que prefiera según se muestra en el fragmento de código siguiente:

   currentCnx.ChangeDatabase("myOtherDatabase");

Base de datos en AMO

Cuando se usa AMO para administrar un objeto de base de datos, se empieza con un objeto Server y, desde ahí se busca a base de datos en la colección de bases de datos o se crea una nueva base de datos agregando una a la colección.

En el fragmento de código siguiente se muestran los pasos necesarios para conectarse a un servidor y cómo se crea una base de datos vacía después de comprobar que la base de datos no existe:

AMO.Server CurrentServer = new AMO.Server();
try
{
    CurrentServer.Connect(currentServerName);
}
catch (Exception cnxException)
{
    MessageBox.Show(string.Format("Error while trying to connect to server: [{0}]\nError message: {1}", currentServerName, cnxException.Message), "AMO to Tabular message", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
}
newDatabaseName = DatabaseName.Text;
if (CurrentServer.Databases.Contains(newDatabaseName))
{
    return;
}
try
{
    AMO.Database newDatabase = CurrentServer.Databases.Add(newDatabaseName);
    
    CurrentServer.Update();
}
catch (Exception createDBxc)
{
    MessageBox.Show(String.Format("Database [{0}] couldn't be created.\n{1}", newDatabaseName, createDBxc.Message), "AMO to Tabular message", MessageBoxButtons.OK, MessageBoxIcon.Error);
    newDatabaseAvailable = false;
}

Además, si desea tener conocimientos prácticos acerca de cómo se usa AMO para crear y tratar representaciones de bases de datos, vea el código fuente del ejemplo AMO a tabular; en concreto, revise el siguiente archivo fuente: Database.cs. El ejemplo está disponible en Codeplex. Una nota importante sobre el código: se proporciona solo como apoyo de los conceptos lógicos explicados aquí y no debe utilizarse en un entorno de producción; no debe usarse para otros fines excepto el pedagógico.