就 SSRS 而言,DataSource 只是 xml 结构中元素中的连接字符串。共享的只是一个保留为它自己的对象,然后 rdl 元素(报告)在其 xml 中对该对象的引用。将 rds 文件(SSRS 的数据源)视为与 .NET 标准连接字符串非常相似:
Data Source=(server);Initial Catalog=(database)
另外,您可以存储凭据以模拟运行报告的人员。因此,您可以让代理用户运行数据库连接。然而,SSRS 通过一个名为“商业智能开发工作室”的 GUI 来执行此操作,它是 Visual Studio 的一个附加组件,通常 SQL Server 版本与 VS 版本匹配,除了 2012 之外。那个创建了一个 VS 2010 的 shell Visual Studio,仅用于 BIDS .
据我所知,您应该直接在 BIDS 中创建这些文件,而不是尝试直接破解 RDS 文件,除非您让 ReportService2010.asmx Web 服务弄乱它在 .NET 中的属性(这需要更多的工作。)。
要添加一个,您只需执行以下操作:
- 通过报告项目进入 BIDS
- 展开一个项目
- 右键单击“共享数据源”>“添加新的”
- 单击连接字符串旁边的“编辑...”
- 您将获得一个与 ADO.NET 标准连接字符串创建器非常相似的菜单
- 输入服务器名称
- 放入 DatabaseName 8*** 可选放入默认凭据。
- 点击确定
通常,SSRS 所做的一切都包含三个部分
- 数据源 = 连接字符串(未嵌入时的 rds 文件)
- 数据集 = 选择查询或 proc 结果或其他数据源返回(未嵌入时的 rsd 文件)
- 报告 = 参数、表格、矩阵等元素的结果 xml 显示(处理托管报告时的 RDL 文件)
一般来说,报告可以嵌入所有内容,或者只是引用他们使用的所有内容。为了部署,引用通常更容易,因为 SSRS 旨在查看数据源是否首先存在并且默认情况下不会覆盖它们。因此,如果您重用数据源,只要设置正确的策略,从长远来看会容易得多。
如果您只想知道 rds 文件的结构,它们看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<RptDataSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Test">
<ConnectionProperties>
<Extension>SQL</Extension>
<ConnectString>Data Source=TestServer;Initial Catalog=TestDatabase</ConnectString>
</ConnectionProperties>
<DataSourceID>45be0ac1-80a8-4d5c-906b-c13b03298e0a</DataSourceID>
</RptDataSource>