Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Reporting services 如何在C代码中向RDL添加嵌入式数据源?_Reporting Services_Ssrs 2008_Rdl - Fatal编程技术网

Reporting services 如何在C代码中向RDL添加嵌入式数据源?

Reporting services 如何在C代码中向RDL添加嵌入式数据源?,reporting-services,ssrs-2008,rdl,Reporting Services,Ssrs 2008,Rdl,我试图在多租户的情况下使用SSR。我们希望支持的基本版本是SQL Server 2008,但如果需要R2,我们可能会同意 我目前正在使用ReportingService2005.asmx端点,它似乎公开了ReportService2005SoapClient类(尽管所有示例似乎都显示ReportingService2005类) 当我们运行一个报表时,我想从服务器复制一个报表,添加一个嵌入式数据源,将数据集指向该数据源,然后运行报表 我已经做到了: 从服务器获取RDL 修改XML以添加数据源 将数

我试图在多租户的情况下使用SSR。我们希望支持的基本版本是SQL Server 2008,但如果需要R2,我们可能会同意

我目前正在使用ReportingService2005.asmx端点,它似乎公开了ReportService2005SoapClient类(尽管所有示例似乎都显示ReportingService2005类)

当我们运行一个报表时,我想从服务器复制一个报表,添加一个嵌入式数据源,将数据集指向该数据源,然后运行报表

我已经做到了:

  • 从服务器获取RDL

  • 修改XML以添加数据源

  • 将数据集指向新的数据源

  • …但当我尝试“CreateReport”时,会出现以下错误:

    System.Web.Services.Protocols.SoapException:数据集“DataSet1”引用的数据源“mydatasource_LOCAL”不存在。
    在Microsoft.ReportingServices.Library.ReportingService2005Impl.ExecuteBatch(Guid batchId)上
    在Microsoft.ReportingServices.WebServer.ReportingService 2005.ExecuteBatch()上

    我已经将数据集添加到RDL中,它看起来与我在设计器中添加数据集时一样。但是,我假设需要向服务器添加一些内容?我错过了什么


    (顺便说一句,我知道MS Dynamics在一个实例中启用了multi-tennant SSR,但我看不到他们是如何做到这一点的。如果他们有任何代码或任何他们共享的东西,有人可以告诉我那将是非常棒的。)

    您使用的端点或多或少是正确的。发件人:

    SQL Server 2008 R2中不推荐使用和终结点。端点包括两个端点的功能,并包含其他管理特性

    在任何情况下,您都提到在步骤2中修改RDL以使用新的数据源。我可能错了,但我认为您可能仍然需要使用该方法向报表目录中添加一项

    如果您从VisualStudio将新报表部署到报表服务器,那么在部署报表之前,它还会在日志中提到正在部署数据源


    当然,您也可以事先使用报表管理器在服务器上创建该数据源(尽管“mydatasource_LOCAL”可能不是一个理想的名称)。

    我看不出在报表中使用嵌入式数据源时会部署数据源,而只是在创建共享数据源时。我会再核实一下。(是的,使用该端点是因为我们需要支持SQL Server 2008及更高版本)。当我部署报表时,确实会显示在reportmanager数据库中创建的数据源。它具有与报表匹配的项ID。但是,如何获取无法创建的报表的itemid来创建createdatasource?似乎我甚至不必修改RDL。只需克隆报表,然后使用SetItemDataSources,它为报表创建了一个嵌入式数据源。