我有一堆SSRS 2008报告,我想在几台不同的机器上运行(开发,测试,生产)。每台机器都有自己的数据库,因此我需要根据报告的运行位置使用不同的连接字符串。
我发现一个解决方法是在运行时传递给报表的隐藏参数中指定服务器和目录名称。它在this tutorial中有描述,但它适用于SSRS 2005,我无法在SSRS 2008中使用。
当我的共享数据源中的连接字符串如下所示时,一切正常:
为了看看表达式是否可以用于连接字符串,我用这个替换了连接字符串:
但是当我尝试在Visual Studio中预览报表时,这会给我以下错误:
本地报告期间发生错误 处理。该项目 '/ Zeiterfassung-Adrian'不可能 找到。
SSRS 2008中的动态连接字符串是否仍然有效?
如果是的话,我做错了什么?
如果没有,我还能做什么?
答案 0 :(得分:2)
这是因为它是一个共享的数据源。应该适用于常规嵌入式数据源。有关使用带有共享数据源的动态连接字符串的选项,请查看THIS链接,可能对您有所帮助。
答案 1 :(得分:1)
只需为每个环境创建报告数据源并进行部署。然后切换部署选项以不覆盖数据源。虽然要进行简单的部署,但您必须在每个环境的出价中配置配置管理器。这就是我们在多种环境中工作的方式。
希望它有所帮助,如果您对此有任何疑问,请与我联系。
答案 2 :(得分:1)
请查看相关文章 http://haseebmukhtar.wordpress.com/2011/11/09/dynamic-database-in-ssrs-2008/
此外,您无法对共享数据源使用动态数据库设置。
答案 3 :(得分:0)
字符串应该有服务器名称的双引号。 =“data source =”“& Parameters!MyServerParameter.Value&”“; initial catalog = DBName ..”
答案 4 :(得分:0)
我能够使用ServerName参数创建动态嵌入式连接,如下所示:
="数据源=" &安培;参数!ServerName.Value& &#34 ;;初始目录= master"
答案 5 :(得分:-1)
使用隐藏的报告参数怎么样?
然后你应该能够做到:
=“data source =”&参数!MyServerParameter.Value& “;初始目录= DBName ..”
以下是一篇应该帮助您的文章:http://msdn.microsoft.com/en-us/library/ms156450.aspx