ADOMD.NET でのスキーマ行セットの操作

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 スキーマ行セットを使用して、プロバイダーがサポートするすべてのスキーマ行セットを検出することもできます。

    詳細については、「XML for Analysis スキーマ行セット」を参照してください。

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

    詳細については、「OLE DB スキーマ行セット」を参照してください。

  • OLAP メタデータ
    分析データ ソースのスキーマ情報には、分析データ ソースで使用できるデータベースやカタログ、データベース内のキューブとマイニング モデル、データ ソースのキューブに割り当てられているロールなどがあります。

    詳細については、「OLE DB for OLAP スキーマ行セット」を参照してください。

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

    詳細については、「データ マイニング スキーマ行セット」を参照してください。

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

GUID の引き渡しによるメタデータの取得

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

注意

ADOMD.NET データ プロバイダーは、特定のプロバイダーおよび分析データ ソースで使用可能な機能を使用してスキーマ情報を提供します。 プロバイダーおよびデータ ソースごとに、異なるメタデータを提供できます。

XMLA 名の引き渡しによるメタデータの取得

次のメソッドでは、返されるスキーマ情報を特定する XMLA スキーマ名、および返される列の制限の配列を引数として指定します。

これらの各メソッドは、スキーマ情報を使用して作成された DataSet オブジェクトのインスタンスを返します。 DataSet オブジェクトは、Microsoft .NET Framework クラス ライブラリの System.Data 名前空間にあります。

使用例

次の例では、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);
}

関連項目

参照

分析データ ソースからのメタデータの取得