Подготовка к реализации модуля обработки данных
Перед внедрением собственного модуля обработки данных служб SQL ServerReporting 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).
См. также