在微软的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/165405
SSAS脚本 文件:
http://msftdbprodsamples.codeplex.com/downloads/get/258486
由 于本文用到的Cube取自微软官方SQLServer示例中的Adventure Works示例库,而SSAS数据库 只提供项目文件,所以需要同时下载DW文件以供SSAS去处理。
需要留意一下的是下 载的是DW数据库,而不是OLTP数据库,这两个库在结构上有很大的差别,不要下载错。
首先将下载下来的数据库文件附加进数据引擎服务。