我保存了某些MDX查询,并使用ADOMD.NET运行它们。我得到了CellSet,我将其转换为数据集。这一切都很好。现在,DB团队已经改变了立方体结构。他们更新了DimesnionName,属性名称等。某些维度已重命名,有些维度已被删除。由于这个原因,我无法运行保存的查询。我想创建一个控制台应用程序,它将获取键列表([DimensionName]。[AttributeName]或[DimensionName]。[AttributeName]。[MemeberName]格式),它会告诉我以下键不存在。
请以编程方式告诉我这是否可行。我不想手动检查它。
请分享一个链接或代码,以帮助我实现这一目标。
谢谢。
答案 0 :(得分: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;
...
}
预先为所需的所有元素查找名称可能是最难的部分(并保持最新状态)。
在多维数据集中触发所有查询并尝试捕获“没有这样的东西”响应会不会更容易吗?