SSRS 2008 ..如何为同一服务器中的不同数据库创建下拉菜单

时间:2011-11-18 16:11:05

标签: reporting-services

请帮助我......

  1. DB1,DB2,DB3,DB4,DB5等数据库很少....

  2. 每个数据库都有相同的表T1,T2,T3 ..... Tn。 (每个表都有相同的列C1,C2,C3 ...... Cn ......但这些表中的数据不同)

  3. 要求: * 查询: *从T1内部连接T2选择C1,C2,C3,T1.C4 = T2.C4

    所有数据库的查询都相同。

  4. 第一步是为数据库DB1,DB2,DB3,DB4,DB5创建下拉菜单

  5. 然后选择一个或多个数据库,之后应针对选定的数据库或数据库运行查询。

  6. 我应该选择哪些来源以及如何为他们创建数据集?

2 个答案:

答案 0 :(得分:0)

你可以尝试一下:

  1. 将所有数据源映射到部署描述符(web.xml / web-config.xml)

  2. 通过将密钥作为下拉值传递来根据请求获取数据源

  3. 获得正确的数据源后,获取连接并执行查询

答案 1 :(得分:0)

创建一个名为SelectedDatabase的参数。

对其中可用数据库的值进行硬编码。

将查询表达式更改为:

="select C1, C2, C3 from " & Parameters!SelectedDatabase.Value & ".T1 inner join " & Parameters!SelectedDatabase.Value & ".T2 on T1.C4 = T2.C4"

这是动态查询的示例 - 您可以找到更多here

请注意,如果用户可以直接输入将在动态查询中使用的值,则您将打开代码,风险为SQL injection attacks(强制性XKCD参考here)。这就是你应该对可用值进行硬编码的原因(如果可能的话)。