Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何在Microsoft SQL Server 2005 Reporting Services中的多个项目之间共享数据源并保持Visual Studio;预览;?_Sql Server 2005_Reporting Services - Fatal编程技术网

Sql server 2005 如何在Microsoft SQL Server 2005 Reporting Services中的多个项目之间共享数据源并保持Visual Studio;预览;?

Sql server 2005 如何在Microsoft SQL Server 2005 Reporting Services中的多个项目之间共享数据源并保持Visual Studio;预览;?,sql-server-2005,reporting-services,Sql Server 2005,Reporting Services,我有一个包含多个报表项目的解决方案(每个目标部署文件夹一个—我认为这是实现此效果的唯一方法,至少在我放弃Visual Studio进行报表部署之前是如此) 我想为所有这些报告“一次且仅一次”指定我的数据源信息 到目前为止,我已经创建了一个单独的报告项目,其中包含我的共享数据源。如果我以正确的顺序将东西部署到报表服务器,并向适当的神祈祷,那么报表似乎会链接到那里的共享数据源并运行(至少通过IE中的报表管理器) 但是,当我开发报表时,我不能再“预览”以在本地试用—我现在必须将其部署到报表服务器以尝试

我有一个包含多个报表项目的解决方案(每个目标部署文件夹一个—我认为这是实现此效果的唯一方法,至少在我放弃Visual Studio进行报表部署之前是如此)

我想为所有这些报告“一次且仅一次”指定我的数据源信息

到目前为止,我已经创建了一个单独的报告项目,其中包含我的共享数据源。如果我以正确的顺序将东西部署到报表服务器,并向适当的神祈祷,那么报表似乎会链接到那里的共享数据源并运行(至少通过IE中的报表管理器)

但是,当我开发报表时,我不能再“预览”以在本地试用—我现在必须将其部署到报表服务器以尝试运行它。这是一个麻烦

我唯一的办法是在每个项目中添加一整套数据源副本(指向我的开发数据库),设置这些副本不在我的机器上部署,并且(可能)将它们从源代码管理中排除吗

我们倾向于做的是:

  • 在服务器上有一个名为“DataSources”的文件夹,对用户隐藏。在这里将有所有的数据源

  • 对于VS中的每个报告项目,都会有一个文件夹,也称为“数据源”,但这次它只包含此报告的数据源

  • 只要文件夹结构相同(即报表和数据源在服务器和VS中具有相同的相应文件夹级别),这似乎对我们有效。

    一种技术(肮脏的把戏?)我现在玩的是将我的数据源(
    .rds
    )复制到每个项目中,关闭Visual Studio,然后在底层文件/文件夹中:

    • 从我的报告项目中删除复制的
      .rds
      (在我的
      数据源
      项目中只保留一个副本)
    • 在每个报表项目的项目文件(
      Foo.rptproj
      )中,将
      project.DataSources.ProjectItem.FullPath
      元素的文本从
      My Shared Data Source.rds
      更改为
      。\Data Sources\My Shared Data Source.rds
    这样,所有报告项目都引用文件系统上相同的底层文件,因此它们共享一个数据源定义,但每个项目也有一个“本地”共享数据源,因此VisualStudio很高兴

    关于源代码管理:仍然只有一个
    .rds
    的副本被签入,所以我们没有用大量讨厌的副本污染代码库;对
    .rptproj
    文件的更改可以签入,因此我们不会强迫开发人员进行不自然的源代码管理操作(选择性部分提交等),以维护一个正常的主副本

    每个报表项目都将尝试部署此数据源,尽管我已禁止覆盖服务器上的现有数据源,所以这不是什么大问题。我想,如果我打算覆盖服务器的数据源定义,那么用相同的
    .rds
    重写一次还是十次其实并不重要


    免责声明:这仍然是一个实验。我还没有在实践中使用此技术的经验,因此我甚至不能推荐它。

    我已经使用此设置好几个月了,它似乎很有效。如果源代码管理系统具有共享功能,源代码管理方法可能是一个很好的答案。我用的是保险库,它很光滑。物理文件的副本会制作到所有项目中,但任何物理实例都可以编辑,并且只有一个文件副本在源代码管理下,因此Vault可以对其进行干净的管理,而无需任何操作。