我正在做一个从olap立方体中提取维度、度量和kpi的项目。
此时,原型询问来自adomdclient的维度:
connection = new AdomdConnection(connectionString);
connection.Open();
Cubes = new List<Cube>();
foreach (CubeDef def in connection.Cubes)
{
if (def.Name[0] == '$')
continue;
Cubes.Add(new Cube(def));
}和来自AnalysisServices.Server的KPI
server.Connect(ConnectionString);
Database db = server.Databases[Catalog];
Cube cube = db.Cubes[catalog];
foreach (MeasureGroup group in cube.MeasureGroups)
{
foreach (Microsoft.AnalysisServices.Measure measure in group.Measures)
{
//do the job
}
}因为第一个返回包含维度的所有元数据的CubeDef,第二个返回包含kpi的所有数据的真实立方体。
但是连接字符串是一样的!
所以有一种方法可以避免这种情况,打开一个连接并检索所有必要的数据?
发布于 2013-12-04 12:50:50
实际上,您可以通过客户端连接获得客户端工具通常需要的东西(元数据和数据本身),而通过服务器连接获得的信息则与数据集定义有关(就像您在投标中所做的配置)。关于数据源视图或分区的详细信息是不需要的,因此对客户端是隐藏的,因为这些只能通过服务器连接访问。
要从客户端访问KPI,只需使用CubeDef的CubeDef属性,该属性枚举所有KPI。
https://stackoverflow.com/questions/20373990
复制相似问题