Prepararse para implementar una extensión de procesamiento de datos

Antes de implementar la extensión de procesamiento de datos de SQL Server Reporting Services, debería definir las interfaces que se implementarán. Puede que desee proporcionar implementaciones específicas de la extensión del conjunto completo de interfaces o simplemente centrar la implementación en un subconjunto, como las interfaces IDbCommand y IDataReader en las que los clientes interactuarían principalmente con un conjunto de resultados como un objeto DataReader y utilizarían su extensión de procesamiento de datos de SSRS como un puente entre el conjunto de resultados y el origen de datos.

Puede implementar las extensiones de procesamiento de datos de una de dos maneras:

  • Las clases de extensión de procesamiento de datos pueden implementar las interfaces del proveedor de datos de Microsoft .NET Framework y, opcionalmente, las interfaces de extensión de procesamiento de datos extendidas que proporciona Reporting Services.

  • Las clases de extensión de procesamiento de datos pueden implementar las interfaces de extensión de procesamiento de datos que proporciona Reporting Services y, opcionalmente, las interfaces de extensión de procesamiento de datos extendidas.

Si la extensión de procesamiento de datos de Reporting Services no va a admitir ninguna propiedad ni método concretos, implemente la propiedad o método como una no-operación. Si un cliente espera un comportamiento determinado, inicie una excepción NotSupportedException.

Nota

Una implementación no-operación de una propiedad o método solo se aplica a las propiedades y métodos de las interfaces que decida implementar. Las interfaces opcionales que decida no implementar se deberían omitir del ensamblado de extensión de procesamiento de datos. Para obtener más información sobre si se requiere una interfaz o es opcional, vea la tabla posteriormente en esta sección.

Funcionalidad de extensión necesaria

Cada extensión de procesamiento de datos de Reporting Services debe proporcionar la funcionalidad siguiente:

  • Abrir una conexión con un origen de datos.

  • Analizar una consulta y devolver una lista de nombres del conjunto de resultados.

  • Ejecutar una consulta en el origen de datos y devolver un conjunto de filas.

  • Pasar los parámetros de un solo valor a la consulta.

  • Recorrer las filas del conjunto de filas y recuperar los datos.

Cada extensión de procesamiento de datos se puede extender para incluir la funcionalidad siguiente:

  • Analizar una consulta y devolver una lista de los nombres de parámetro utilizados en la consulta.

  • Analizar una consulta y devolver la lista de campos por los que la consulta se agrupa.

  • Analizar una consulta y devolver la lista de campos por los que la consulta se ordena.

  • Proporcionar un nombre de usuario y una contraseña para conectarse al origen de datos que es independiente de la cadena de conexión.

  • Recorrer en iteración las filas del conjunto de filas y recuperar los metadatos auxiliares sobre los valores de datos.

  • Agregar datos al servidor.

Interfaces de extensión disponibles

En la tabla siguiente se describen las interfaces disponibles y si se requiere la implementación o es opcional.

Interfaz

Descripción

Implementación

IDbConnection

Representa una sesión única con un origen de datos. En el caso de un sistema de bases de datos de cliente y servidor, la sesión puede ser equivalente a una conexión de red al servidor.

Necesario

IDbConnectionExtension

Representa propiedades de conexión adicionales que pueden ser implementadas por extensiones de procesamiento de datos de SSRS con respecto a la seguridad y autenticación.

Opcional

IDbTransaction

Representa una transacción local.

Necesario

IDbTransactionExtension

Representa las propiedades de transacción adicionales que pueden ser implementadas por extensiones de procesamiento de datos de SSRS.

Opcional

IDbCommand

Representa una consulta o comando que se utiliza al conectarse a un origen de datos.

Necesario

IDbCommandAnalysis

Representa información del comando adicional para analizar una consulta y devolver una lista de los nombres de parámetros que se usan en la consulta.

Opcional

IDataParameter

Representa un parámetro o un par de nombre y valor que se pasa a un comando o consulta.

Necesario

IDataParameterCollection

Representa una recopilación de todos los parámetros pertinentes para un comando o consulta.

Necesario

IDataReader

Proporciona un método para leer una secuencia de solo lectura y solo avance de datos del origen de datos.

Necesario

IDataReaderExtension

Proporciona un método para leer una o varias secuencias de solo avance de conjuntos de resultados, obtenidos al ejecutar un comando en un origen de datos. Esta interfaz proporciona compatibilidad adicional para los agregados de campo.

Opcional

IExtension

Proporciona la clase base para la extensión de procesamiento de datos de Reporting Services. También permite a un implementador incluir un nombre traducido para la extensión y pasar la configuración del archivo de configuración a la extensión.

Necesario

Las interfaces de extensión de procesamiento de datos son idénticas a un subconjunto de las interfaces, métodos y propiedades del proveedor de datos de .NET Framework, siempre que sea posible. Para obtener más información sobre cómo implementar un proveedor de datos de .NET Framework completo, vea el tema sobre la implementación de un proveedor de datos de .NET Framework en la documentación del Kit de desarrollo de software (SDK) de .NET Framework.