从RDLC中读取Analysis Services中Cube的数据2014-03-10 cnblogs 宋卫东在微软的Report Services的rdl中,默认是支持从分许服务的Cube中查询数据的,但是 rdlc中就需要间接的方式来对Cube的数据进行访问。相对rdl和rdlc两者完全就是不同的 套路。两者的差别绝对不是名字上只差个c那么简单,从设计的部分细节和部署的方式都有很 大的区别。而实际项目中往往根据不同的情况来具体决定才用哪一种方案。这里推 荐用两种方式来访问。第一种方式是用链接的形式将分析服务数据库链接到数据引 擎服务,然后mdx查询的逻辑写到存储过程里,最后顶层应用通过调用存储过程的方式来间接 达到访问分析服务数据库的目的。

另外一种方案就是将数据源用方法封装起来。由于rdlc本身是在一个c#或者vb.net项目中 的,所以在rdlc中是支持把项目的一个方法作为数据源,这样可以在方法里对 adomd.net进 行调用,然后将mdx结果以List的方式返回给rdlc。第一种方法的具体实现可以参考 sqlserver链接服务器的操作,这里主要描述第二种方法。安装SQLServer,过程可 以参考这里。http://www.cnblogs.com/aspnetx/archive/2012/04/13/2446479.html这里 推荐安装2012版本。不考虑2012里的新特性的话,基本上你不用太担心先前版本能否迁移过 来。下载示例数据文件。从codeplex下载。DW文件:http://msftdbprodsamples.codeplex.com/downloads/get/165405SSAS脚本 文件:http://msftdbprodsamples.codeplex.com/downloads/get/258486由 于本文用到的Cube取自微软官方SQLServer示例中的Adventure Works示例库,而SSAS数据库 只提供项目文件,所以需要同时下载DW文件以供SSAS去处理。需要留意一下的是下 载的是DW数据库,而不是OLTP数据库,这两个库在结构上有很大的差别,不要下载错。首先将下载下来的数据库文件附加进数据引擎服务。