1

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

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

4

1 回答 1

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 "

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

于 2011-09-23T03:00:33.857 回答