Share via


Implementar una clase Connection para una extensión de procesamiento de datos

El objeto Connection representa una conexión a bases de datos o un recurso similar, y es el punto inicial para los usuarios de una extensión de procesamiento de datos de SQL ServerReporting Services. Representa las conexiones a los servidores de bases de datos, aunque cualquier entidad con un comportamiento similar se puede exponer como Connection.

Para implementar un objeto Connection, cree una clase que implemente IDbConnection y que implemente opcionalmente IDbConnectionExtension.

En la implementación debe asegurarse de que se crea y se abre una conexión para que se puedan ejecutar los comandos. Asegúrese de que la implementación requiere que los clientes abran y cierren las conexiones explícitamente, en lugar de hacer que abra y cierre las conexiones para el cliente de forma implícita. Realice comprobaciones de seguridad cuando se obtenga la conexión. Al requerir una conexión existente para las otras clases en la extensión de procesamiento de datos de SSRS, se asegurará de que las comprobaciones de seguridad se realicen siempre al trabajar con el origen de datos.

Las propiedades de la conexión deseada se representan como una cadena de conexión. Se recomienda encarecidamente que las extensiones de procesamiento de datos de SSRS admitan la propiedad ConnectionString mediante el conocido sistema de par de nombre y valor definido por OLE DB.

[!NOTA]

Para obtener objetos Connection, a menudo se necesitan muchos recursos, de modo que puede ser conveniente que considere agrupar las conexiones u otras técnicas para mitigar esto.

IDbConnection hereda de IExtension. Debe implementar la interfaz IExtension como parte de la implementación de la clase de conexión. La interfaz IExtension permite a una clase implementar un nombre de extensión localizado y procesar la información de configuración específica de la extensión que se almacena en el archivo de configuración de Reporting Services.

El objeto Connection contiene la propiedad LocalizedName a través de su implementación de IExtension. Se recomienda encarecidamente que las extensiones de procesamiento de datos de Reporting Services admitan la propiedad LocalizedName, de forma que los usuarios encuentren un nombre traducido y conocido para la extensión en una interfaz de usuario, como el Administrador de informes.

IExtension también permite que el objeto Connection recupere y procese los datos de configuración personalizados que se almacenan en el archivo RSReportServer.config. Para obtener más información acerca de cómo procesar los datos de configuración personalizados, vea el método SetConfiguration.

La clase que implementa IExtension no se descarga de la memoria cuando se descarga el resto de las clases de extensión de procesamiento de datos. Por ello, puede utilizar la clase Extension con el fin de almacenar información de estado a través de las conexiones o almacenar datos que pueden estar almacenados en la memoria caché. La clase Extensión permanece en la memoria siempre que se ejecuta el servidor de informes.

Puede extender la clase Connection para incluir compatibilidad con las credenciales de Reporting Services implementando IDbConnectionExtension. Al implementar las propiedades IntegratedSecurity, UserName y Password de la interfaz IDbConnectionExtension, habilita la casilla Seguridad integrada y los cuadros de texto NombreDeUsuario y Contraseña del cuadro de diálogo Origen de datos del diseñador de informes. Esto permite al Diseñador de informes almacenar y recuperar las credenciales de los orígenes de datos que admitan la autenticación. Las credenciales se almacenan seguras y se utilizan al representar los informes en el modo de vista previa.

[!NOTA]

Implementar de forma implícita la interfaz IDbConnectionExtension implica que se deben implementar los miembros de las interfaces IExtension y IDbConnection.

Para obtener un ejemplo de implementación de la clase Connection, vea Ejemplos de SQL Server Reporting Services.