【问题标题】:Using Dynamic Connection Strings in SSRS2008在 SSRS2008 中使用动态连接字符串
【发布时间】:2010-01-20 13:00:20
【问题描述】:

我有一堆 SSRS 2008 报告,我想在几台不同的机器(开发、测试、生产)上运行它们。每台机器都有自己的数据库,所以我需要根据报告的运行位置使用不同的连接字符串。

我发现的一种解决方法是在运行时传递给报表的隐藏参数中指定服务器和目录名称。它在this tutorial 中有描述,但它适用于 SSRS 2005,我无法让它在 SSRS 2008 中工作。

当我的共享数据源中的连接字符串如下所示时,一切正常:

只是为了看看表达式是否可以用于连接字符串,我将连接字符串替换为:

但是当我尝试在 Visual Studio 中预览报告时,这给了我以下错误:

本地报告时出错 加工。项目 '/Zeiterfassung-Adrian' 不能 找到了。

动态连接字符串在 SSRS 2008 中是否仍然有效?

如果是,我做错了什么?

如果没有,我还能做什么?

【问题讨论】:

  • 根据实际运行这些报告的受众,您可能对管理工作室中的自定义报告感兴趣。 msdn.microsoft.com/en-us/library/bb153684.aspx
  • 虽然我知道这个问题有点老了,但屏幕截图来自哪个版本的 BIDS?我的 2008 BIDS 在“编辑”按钮下方有一个小“fx”,可让您按照您的要求进行操作。
  • @D.S.:它来自 Visual Studio 2008 Team System。
  • @D.S. fx 按钮位于“数据源属性”窗口中,但不在“共享数据源属性”窗口中。因此,只有嵌入式数据源才能使用表达式动态化。

标签: connection-string ssrs-2008 reportingservices-2005 reporting-services


【解决方案1】:

这是因为它是一个共享数据源。对于常规的嵌入式数据源应该可以正常工作。查看THIS 链接以获取有关将动态连接字符串与共享数据源一起使用的选项,这可能对您有所帮助。

【讨论】:

    【解决方案2】:

    只需为每个环境创建报表数据源并进行部署。然后切换您的部署选项以不覆盖数据源。尽管为了进行简单的部署,您必须为每个环境配置配置管理器。这就是我们在多种环境中工作的方式。

    希望对您有所帮助,如果您对此有任何疑问,请告诉我。

    【讨论】:

    • 感谢您的回答!它并不完美,但它似乎是在特定情况下唯一可行的解​​决方案。
    【解决方案3】:

    请查看相关文章 http://haseebmukhtar.wordpress.com/2011/11/09/dynamic-database-in-ssrs-2008/

    您也不能对共享数据源使用动态数据库设置。

    【讨论】:

      【解决方案4】:

      字符串应该有服务器名称的双双引号。 ="data source="" & Parameters!MyServerParameter.Value & "";initial catalog=DBName.."

      【讨论】:

      • 嗯...我刚试过,但没有用。我什至试过 ="Data Source=88.198.25.106;Initial Catalog=Zeiterfassung-Production;Persist Security Info=True" 或 =""Data Source=88.198.25.106;Initial Catalog=Zeiterfassung-Production;Persist Security Info=True""只是想看看是否完全支持表达式,即使这样也不能正常工作。
      【解决方案5】:

      我能够使用 ServerName 参数创建动态嵌入式连接,如下所示:

      ="data source=" & Parameters!ServerName.Value & ";initial catalog=master"

      【讨论】:

        【解决方案6】:

        如何使用隐藏的报表参数?

        那么你应该可以做到:

        ="data source=" & Parameters!MyServerParameter.Value & ";initial catalog=DBName.."

        这里有一篇文章可以帮助你:http://msdn.microsoft.com/en-us/library/ms156450.aspx

        【讨论】:

        • 您所建议的正是我开篇文章的第二个屏幕截图中已经显示的内容。不过感谢您提供的链接,但至少现在我知道这应该有效,但我仍然不知道为什么它不起作用。
        • 是的,应该可以,您可以尝试的一件事是对整个连接字符串进行硬编码。然后在您的报告中添加一个文本框并引用我显示的参数。运行报告,看看你是否在那个文本框中得到了一个值。
        猜你喜欢
        • 1970-01-01
        • 2014-08-08
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 2010-10-24
        • 2011-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多