Подготовка к реализации модуля обработки данных

Перед внедрением собственного модуля обработки данных служб SQL Server Службы Reporting Services пользователю следует определить реализуемые интерфейсы. Пользователь может создать зависящие от модулей реализации всего набора интерфейсов, либо только ограниченное подмножество, например интерфейсы IDataReader и IDbCommand, используя которые клиенты в основном взаимодействовали бы с набором результатов как объект 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» в документации по пакету .NET Framework Software Development Kit (SDK).