在实现 SQL Server Reporting Services 数据处理扩展插件之前,应定义要实现的接口。 你可能想要提供整个接口集的特定于扩展的实现,或者你可能只想将实现集中在子集上,例如IDataReaderIDbCommand客户端将主要与结果集交互作为 DataReader 对象交互的接口,并将 SSRS 数据处理扩展插件用作结果集和数据源之间的桥梁。
可以通过以下两种方式之一实现数据处理扩展插件:
数据处理扩展插件类可以实现 Microsoft .NET Framework 数据提供程序接口,还可以实现 Reporting Services 提供的扩展数据处理扩展插件接口。
数据处理扩展插件类可以实现 Reporting Services 提供的数据处理扩展插件接口和扩展数据处理扩展插件接口(可选)。
如果 Reporting Services 数据处理扩展插件不支持特定属性或方法,请将属性或方法实现为无作。 如果客户端需要特定行为,则引发 NotSupportedException 异常。
注释
属性或方法的无作实现仅适用于你选择实现的接口的属性和方法。 选择不实现的可选接口应被排除在数据处理扩展插件程序集外。 有关接口是必需还是可选的详细信息,请参阅本节后面的表。
所需的扩展功能
每个 Reporting Services 数据处理扩展插件必须提供以下功能:
打开与数据源的连接。
分析查询并返回结果集的字段名称列表。
针对数据源执行查询并返回行集。
将单值参数传递给查询。
循环访问行集中的行并检索数据。
可以扩展每个数据处理扩展插件以包括以下功能:
分析查询并返回查询中使用的参数名称列表。
分析查询并返回查询分组依据的字段列表。
分析查询并返回查询排序依据的字段列表。
提供用户名和密码以连接到独立于连接字符串的数据源。
循环访问行集中的行,并检索有关数据值的辅助元数据。
聚合服务器上的数据。
可用的扩展接口
下表描述了可用的接口以及实现是必需还是可选。
| 接口 | DESCRIPTION | 执行 |
|---|---|---|
| IDbConnection | 表示与数据源建立的唯一会话。 对于客户端/服务器数据库系统,会话可能等效于与服务器的网络连接。 | 必选 |
| IDbConnectionExtension | 表示可由 SSRS 数据处理扩展插件实现的其他连接属性,这些属性涉及安全性和身份验证。 | 可选 |
| IDbTransaction | 表示本地事务。 | 必选 |
| IDbTransactionExtension | 表示可由 SSRS 数据处理扩展插件实现的其他事务属性。 | 可选 |
| IDbCommand | 表示连接到数据源时使用的查询或命令。 | 必选 |
| IDbCommandAnalysis | 表示用于分析查询并返回查询中使用的参数名称列表的其他命令信息。 | 可选 |
| IDataParameter | 表示传递给命令或查询的参数或名称/值对。 | 必选 |
| IDataParameterCollection | 表示与命令或查询相关的所有参数的集合。 | 必选 |
| IDataReader | 提供从数据源读取只读只读数据流的方法。 | 必选 |
| IDataReaderExtension | 提供一种读取一个或多个仅向前结果集流的方法,方法是在数据源中执行命令。 此接口为字段聚合提供附加支持。 | 可选 |
| IExtension | 为 Reporting Services 数据处理扩展插件提供基类。 此外,实现者还可以包含扩展的本地化名称,并将配置设置从配置文件传递到扩展。 | 必选 |
数据处理扩展插件接口与 .NET Framework 数据提供程序接口、方法和属性的子集相同(尽可能)。 有关实现完整的 .NET Framework 数据提供程序的详细信息,请参阅 .NET Framework 软件开发工具包 (SDK) 文档中的“实现 .NET Framework 数据提供程序”。