Поделиться через


Реализация класса Connection для модуля обработки данных

Объект Connection представляет собой подключение к базе данных или аналогичный ресурс. Он является начальной точкой для пользователей модуля обработки данных служб SQL Server Службы Reporting Services. Он представляет собой соединения с серверами баз данных, хотя, в принципе, любая сущность с похожим поведением может быть представлена как Connection.

Для реализации объекта Connection следует создать класс, реализующий интерфейс IDbConnection и (необязательно) интерфейс IDbConnectionExtension.

Перед выполнением команд в реализации следует убедиться, что соединение было создано и открыто. Следует убедиться, что реализация требует от клиентов явного открытия и закрытия соединений, а не выполняет данные операции самостоятельно. После установки соединения следует выполнить проверки безопасности. Настройка необходимости наличия установленного соединения в других классах модуля обработки данных служб Службы SSRS поможет обеспечить обязательное выполнение проверок безопасности при работе с источником данных.

Свойства необходимого соединения представлены в виде строки соединения. Рекомендуется, чтобы в модулях обработки данных служб Службы SSRS поддержка свойства ConnectionString осуществлялась с использованием системы пар «имя-значение», определенной в OLE DB.

ПримечаниеПримечание

Получение объектов Connection связано с затратами ресурсов; для компенсации рекомендуется использовать метод организации пула соединений или другие методики.

Интерфейс IDbConnection наследуется от интерфейса IExtension. Интерфейс IExtension следует реализовать в качестве части реализации класса соединения. Интерфейс IExtension позволяет классу реализовать локализованное имя модуля и обрабатывать характерные для модуля сведения о конфигурации, хранимые в файле конфигурации служб Службы Reporting Services.

Объект Connection содержит свойство LocalizedName из-за реализации интерфейса IExtension. Рекомендуется обеспечить поддержку свойства LocalizedName и модуле обработки данных служб Службы Reporting Services. Это позволит пользователям видеть знакомое локализованное имя модуля в пользовательском интерфейсе (например, в диспетчере отчетов).

Интерфейс IExtension также позволяет объекту Connection получать и обрабатывать данные пользовательской конфигурации, хранимые в файле RSReportServer.config. Дополнительные сведения об обработке данных пользовательской конфигурации см. в описании метода SetConfiguration.

Класс, реализующий интерфейс IExtension, не выгружается из памяти при выгрузке остальных классов модуля обработки данных. В связи с этим класс Extension можно использовать для хранения данных о состоянии, действительных для нескольких соединений, или для хранения данных, которые могут быть кэшированы в памяти. Класс Extension остается в памяти, пока запущен сервер отчетов.

Класс Connection можно расширить, добавив в службы Службы Reporting Services поддержку учетных данных, реализовав интерфейс IDbConnectionExtension. При реализации свойств IntegratedSecurity, UserName и Password интерфейса IDbConnectionExtension в диалоговом окне Источник данных в конструкторе отчетов включается поле для флажка Интегрированная безопасность и текстовые поля Имя пользователя и Пароль. Это позволяет конструктору отчетов сохранять и получать учетные данные для источников данных, поддерживающих проверку подлинности. Учетные данные хранятся в безопасном месте и используются при подготовке отчетов в режиме предварительного просмотра.

ПримечаниеПримечание

Для скрытой реализации интерфейса IDbConnectionExtension необходимо реализовать члены интерфейсов IDbConnection и IExtension.

Образец реализации класса Connection см. в разделе Образцы продуктов служб SQL Server Reporting Services.