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 スキーマ名、および返される列の制限の配列を引数として指定します。
AdomdConnection.GetSchemaDataSet(String, AdomdRestrictionCollection)
AdomdConnection.GetSchemaDataSet(String, AdomdRestrictionCollection, Boolean)
AdomdConnection.GetSchemaDataSet(String, String, AdomdRestrictionCollection)
AdomdConnection.GetSchemaDataSet(String, String, AdomdRestrictionCollection, Boolean)
これらの各メソッドは、スキーマ情報を使用して作成された 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);
}