データベース表現 (テーブル)
テーブル モードでのデータベースの概念は、リレーショナル エンジン モデルと多次元モデルにおけるデータベースの概念と似ており、データベースがテーブル モデル内のすべてのオブジェクトのコンテナーとなっています。
データベース表現
データベースは、テーブル モデルを構成するすべてのオブジェクトが格納される場所です。 接続、テーブル、ロールなど、さまざまなオブジェクトがデータベースに格納されます。
AMO 内のデータベース
AMO を使用してテーブル モデル データベースを管理する場合、AMO 内の Database オブジェクトは、テーブル モデル内のデータベース論理オブジェクトと 1 対 1 で対応します。
注 |
---|
AMO 内でデータベース オブジェクトにアクセスするには、ユーザーがサーバー オブジェクトに対するアクセス権を得て、そこに接続する必要があります。 |
ADOMD.Net 内のデータベース
ADOMD を使用してテーブル モデル データベースを参照してクエリを実行する場合には、特定のデータベースの使用または接続の操作を行うために、AdomdConnection オブジェクトを使用します。
次のコード スニペットを使用すると、特定のデータベースに直接接続することができます。
using ADOMD = Microsoft.AnalysisServices.AdomdClient;
…
ADOMD.AdomdConnection currrentCnx = new ADOMD.AdomdConnection("Data Source=<<server\instance>>;Catalog=<<database>>");
currrentCnx.Open();
…
また、次のコード スニペットを使用すると、既存の接続オブジェクト (閉じられていないもの) を利用して、現在のデータベースを別の任意のデータベースに変更することができます。
currentCnx.ChangeDatabase("myOtherDatabase");
AMO 内のデータベース
AMO を使用してデータベース オブジェクトを管理する場合は、まず Server オブジェクトを使用して、データベース コレクションでデータベースを検索するか、新しいデータベースをコレクションに追加して作成します。
次のコード スニペットは、サーバーに接続する手順と、データベースが存在しないことを確認した後に空のデータベースを作成する方法を示しています。
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;
}
また、AMO を使用してデータベース表現を作成、操作する方法を実際の使用に即して理解するには、AMO2Tabular サンプルのソース コードを参照してください。特に、ソース ファイル "Database.cs" の内容に注意してください。 このサンプルは、Codeplex でダウンロードできます。 このコードに関する重要な注意事項: このコードは、ここで説明する論理的概念を補足するためにのみ提供されています。運用環境では使用しないでください。教育目的以外の目的にも使用しないでください。