ADOMD.net使用笔记(2)对多维数据的提取

ADOMD.net将多维数据集的数据分做两个地方存放。一个叫做CellSet,另一个就是CubeDef了。
其中CellSet主要存放维度的成员以及度量值表,而CubeDef存放的则是多维数集的元数据,也就是比如集合名称、维度名称等等。

有些地方说CellSet有点类似DataSet,其实2者差的非常远。通常DataSet我们会通过数据适配器的Fill方法来填充,但CellSet不行,它必须通过连接类的执行方法成员来返回。不能直接实例化。

例如:
adomdconn.Open();

CellSet cs = AdomdCom.ExecuteCellSet();

adomdconn.Close();

CellSet的成员结构很复杂,就维度说,CellSet包括轴集合Axes,轴包括不同维度成员集合Positions、维度成员集合又包括级别成员集合members。CellSet还有一个度量数据的集合Cells。但如果对多维数据查询了解的话这些应该不难理解,他们在查询后分别会被填充不同的值。


CubeDef存放的是数据集的元数据,可以直接从连接对象的属性中提取。提取出来的是一个CubeDef集合。

adomdconn.Open();

CubeCollection Cubes = adomdconn.Cubes;

adomdconn.Close();

这个集合按理来说应该是对应同一个数据源上的多个数据集的,但实际上并非如此,即使你的数据源上只有1个数据集,他仍然会提出多个元数据集合,都是带有$标志的一些源数据表,其意义就不清楚。有代研究。

posted on 2007-01-19 16:14  猪小小  阅读(408)  评论(1编辑  收藏  举报