1

我保存了某些 MDX 查询并使用 ADOMD.NET 运行它们。我得到了 CellSet 并将其转换为数据集。所有这一切都很好。现在数据库团队已经改变了立方体结构。他们更新了 DimesnionName、属性名称等。一些维度被重命名,一些被删除。因此,我无法运行我保存的查询。我想创建一个控制台应用程序,它将获取键列表([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 回答