次の方法で共有


メタデータの取得 - スキーマ行セットの操作

ADOMD.NET オブジェクト モデルで使用できるメタデータよりも多くのメタデータが必要な場合、ADOMD.NET には、さまざまな XML for Analysis (XMLA)、OLE DB、OLE DB for OLAP、および OLE DB for Data Mining スキーマ行セットを取得する機能が用意されています。

XML for Analysis メタデータ
XML for Analysis スキーマ行セットは、サーバーに関する低レベルの情報を取得するためのメソッドを提供します。 使用可能な情報には、サーバーで使用可能なデータ ソース、プロバイダーによって予約されたキーワード、プロバイダーでサポートされているリテラルなどが含まれます。 XML for Analysis スキーマ行セットを使用して、プロバイダーでサポートされているすべてのスキーマ行セットを検出することもできます。

OLE DB メタデータ
OLE DB スキーマ行セットは、さまざまなプロバイダーから情報を取得するための業界標準の方法を提供します。

OLAP メタデータ
分析データ ソースに対して提供されるスキーマ情報には、分析データ ソースから入手できるデータベースまたはカタログ、データベース内のキューブとマイニング モデル、データ ソースのキューブに対して存在するロールなどが含まれます。

データ マイニング メタデータ
OLAP メタデータに加えて、スキーマ行セットを使用してデータ マイニング メタデータを取得できます。 使用可能な行セットは、データベース内の使用可能なデータ マイニング モデル、使用可能なマイニング アルゴリズム、アルゴリズムに必要なパラメーター、マイニング構造などの情報を公開します。

これらのさまざまなスキーマ行セットごとに、AdomdConnection オブジェクトの GetSchemaDataSet メソッドを使用して、GUID または XMLA 名を渡すことによって、行セットからメタデータを取得します。

GUID を渡してメタデータを取得する

AdomdSchemaGuid クラスには、プロバイダーと分析データ ソースで最も一般的にサポートされるスキーマ行セットを表すフィールドの一覧が含まれています。 プロバイダーまたは分析データ ソースから一般的なメタデータとプロバイダー固有のメタデータの両方を取得するには、 AdomdSchemaGuid オブジェクトに含まれる GUID を次のいずれかの方法で使用します。

ADOMD.NET データ プロバイダーは、特定のプロバイダーと分析データ ソースが利用できる機能を通じてスキーマ情報を公開します。 プロバイダーとデータ ソースごとに異なるメタデータが提供される場合があります。

XMLA 名を渡してメタデータを取得する

次のメソッドは、返すスキーマ情報を識別する XMLA スキーマ名と、返される列に対する制限の配列を引数として受け取ります。

これらの各メソッドは、スキーマ情報が設定された DataSet オブジェクトのインスタンスを返します。 DataSet オブジェクトは、Microsoft .NET Framework クラス ライブラリの System.Data 名前空間から取得されます。

Example

次の例では、GetActions 関数は接続、キューブ名、座標、座標型を受け取り、MDSCHEMA_ACTIONS行セットを取得し、選択した座標で使用できるアクションを返します。

//The following function can be called with the following data:
//ae.GetActions(conn, "Adventure Works","[Geography].[City]",6 );

//This would return a DataSet containing the actions available for cells
//in the Adventure Works cube on [Geography].[City].
private System.Data.DataSet GetActions(AdomdConnection Connection, string Cube, string Coordinate, int CoordinateType)
{
    //Create a restriction collection to restrict the schema information to be returned.
    AdomdRestrictionCollection restrictions= new AdomdRestrictionCollection();
    restrictions.Add("CUBE_NAME", Cube);
    restrictions.Add("COORDINATE", Coordinate);
    restrictions.Add("COORDINATE_TYPE", CoordinateType); //6 = Cell coordinate

    //Open and return a schema rowset, given the correct restictions
    return Connection.GetSchemaDataSet("MDSCHEMA_ACTIONS", restrictions);
}