Udostępnij za pośrednictwem


Database Representation(Tabular)

In Tabular Mode, the database is the container for all objects in the tabular model.

Database Representation

The database is the place where all objects that form a tabular model reside. Contained by the database, the developer finds objects like connections, tables, roles and many more.

Database in AMO

When using AMO to manage a tabular model database, the Database object in AMO matches one-to-one the database logical object in a tabular model.

Note

In order to gain access to a database object, in AMO, the user needs to have access to a server object and connect to it.

Database in ADOMD.Net

When using ADOMD to consult and query a tabular model database, connection to a specific database is obtained through the AdomdConnection object.

You can connect directly to a certain database using the following code snippet:

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

Also, over an existing connection object (that hasn't been closed), you can change the current database to another as shown in the following code snippet:

currentCnx.ChangeDatabase("myOtherDatabase");  
  

Database in AMO

When using AMO to manage a database object, start with a Server object. Then search for your database in the databases collection or create a new database by adding one to the collection.

The following code snippet shows the steps to connect to a server and create an empty database, after checking the database doesn't exist:

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

For a practical understanding on how to use AMO to create and manipulate database representations, see source code in the Tabular AMO 2012 sample; specifically check in the following source file: Database.cs. Sample code is provided only as a support to the logical concepts explained here, and should not be used in a production environment.