1

特定のMDXクエリを保存し、ADOMD.NETを使用して実行しました。CellSetを取得し、データセットに変換します。これはすべて正常に機能しています。これで、DBチームはキューブ構造を変更しました。DimesnionName、Attribute Nameなどが更新されました。一部のディメンションの名前が変更され、一部のディメンションが削除されました。このため、保存したクエリを実行できません。キーのリスト([DimensionName]。[AttributeName]または[DimensionName]。[AttributeName]。[MemeberName]形式)を取得するコンソールアプリケーションを作成したいのですが、次のキーが存在しないことが通知されます。

これがプログラムで可能かどうか教えてください。手動で確認したくありません。

これを達成するのに役立つリンクまたはコードを共有してください。

ありがとうございました。

4

1 に答える 1

0

既に ADOMD を使用している場合、これは問題ありません。メタデータ クエリを使用するだけです。

http://msdn.microsoft.com/en-us/library/ms123485.aspx

または、AMO が便利ですhttp://msdn.microsoft.com/en-us/library/microsoft.analysisservices.aspx

私はそれを処理のために SSIS で使用します。要素の存在をテストするために .Net で簡単に使用できます。

using Microsoft.AnalysisServices;

...

Server server = new Server();
server.Connect(cubeConnectionString);
Database database = server.Databases.FindByName(databaseName);
Cube cube = database.Cubes.FindByName(cubeName);


foreach (MeasureGroup measureGroup in cube.MeasureGroups)           
{
  foreach (Partition partition in measureGroup.Partitions)
  {
  ...
  }
}

foreach (CubeDimension cubeDimension in cube.Dimensions)
{
  Dimension dimension = cubeDimension.Dimension;
  var dimName = dimension.Name;
  ...
}

必要なすべての要素の名前を事前に見つけることは、おそらく難しい部分です (そして、すべてを最新の状態に保つこと)。

キューブですべてのクエリを起動し、「そんなことはありません」という応答をトラップしようとする方が簡単ではないでしょうか?

于 2013-02-05T17:17:07.470 に答える