Reporting Services将报告连接到多个数据库

时间:2011-09-22 20:39:53

标签: reporting-services reportingservices-2000

我有一份报告,我想根据一些运行时参数与不同数据库服务器上的不同数据源进行对话。有没有办法在运行的基础上设置报表连接字符串?我试图避免使用数据处理扩展,但它是一个很薄的代理查询似乎是唯一的方法来实现它。

修改 有一个特性是基于表达式的查询字符串,它直到SQL Server 2005版本的报告服务才出现。 http://blogs.msdn.com/b/bimusings/archive/2006/07/20/673051.aspx一个版本对我来说太晚了。

1 个答案:

答案 0 :(得分:0)

Reporting Services最强大的功能之一是所有内容都是表达式 - 包括数据集的SQL。这意味着您可以从头开始构建SQL表达式。

我们有一个数据库表,表示我们数据的不同快照以及描述和数据库名称。这用作填充用户可以选择的参数的查询,然后将数据库名称插入到SQL中,因此您的数据集表达式如下所示:

="SELECT Field1, Field2, Field3 "
&"FROM " & Parameters!Database.Value & ".dbo.MyTable "

然后,当您需要添加另一个数据库供用户选择时,您只需将其添加到数据库名称表中,所有报告都可以立即访问该数据。

对于服务器,它应该是类似的,例如:

="SELECT Field1, Field2, Field3 "
&"FROM " & Parameters!Server.Value & "." & Parameters!Database.Value & ".dbo.MyTable "

您可能需要将服务器设置为具有数据集最初连接到的数据库的服务器上的链接服务器。