Реализация класса 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. |
См. также