SQL Server 2005 Reporting Services动态设置数据源
Reporting Services动态设置数据源是什么意思呢?就是在运行状态下来设置报表的的数据源。之前在网上也看到了不少关于动态设置数据源的帖子,基本上都是一个思路。那就是,在报表中加入4个参数,分别是ServerName(数据库服务器的名字)、DataBaseName(数据库名称)、UserName(访问数据库的用户名)、Password(访问数据库的密码),然后在数据源的链接字符串中输入一个使用参数形式的表达式,然后发布报表到报表服务器。OK,这就可以实现动态设置数据源了。
但是,有的时候这种做法就不灵了。比如说,我不想用IE去浏览报表,我想使用Reporting Services 提供的Webmethod 来生成报表。这种情况下就不可了。使用Reporting Services的web服务生成报表的话,数据源要求提供链接数据库的方式,是Windows认证还是使用用户名和密码的认证方式,这一点是最重要的,也就是说在链接字符串中设置的用户名和密码是不起作用的,必须单独设置才可以的。
举一个例子,用web服务获取报表的参数列表的webmethod叫GetReportParameters,该方法需要一个参数DataSourceCredentials[] credentials,如果你使用的Data Source Reference的话,这个参数你可以设置成null,大家可能都知道,如果要动态设置数据源,我们是不可以使用Data Source Reference的,我们只能使用Local Data Source,这是你就必须设置这个参数了,这一点很重要的,决定了你是不是可以动态设置数据源了,但是很少有人讲到这一点的(也许是我没有搜到)。
呵呵,其实如果我们找到了方法,问题就很简单了。