Preparar-se para implementar uma extensão de processamento de dados
Antes de implementar a extensão de processamento de dados do SQL Server Reporting Services, você deverá definir as interfaces a serem implementadas. Talvez você queira fornecer implementações específicas de extensão de todo o conjunto de interfaces ou concentre sua implementação em um subconjunto, como as interfaces e nas quais os IDataReader clientes interagiriam principalmente com um conjunto de resultados como um objeto DataReader e usariam sua extensão de processamento de dados do SSRS como uma ponte entre o conjunto de resultados e IDbCommand sua fonte de dados.
Você pode implementar extensões de processamento de dados em um de dois modos:
As classes de extensão de processamento de dados podem implementar as interfaces de provedor de dados do Microsoft .NET Framework e, opcionalmente, as interfaces de extensão de processamento de dados estendidas fornecidas pelo Reporting Services.
As suas classes de extensão de processamento de dados podem implementar as interfaces de extensão de processamento de dados fornecidas pelo Reporting Services e, opcionalmente, as interfaces de extensão de processamento de dados estendidas.
Se sua extensão de processamento de dados do Reporting Services não oferecer suporte a uma propriedade ou método específico, implemente a propriedade ou o método como nenhuma operação. Se um cliente esperar um comportamento específico, gere uma exceção NotSupportedException.
Observação
Uma implementação sem-operação de uma propriedade ou método só se aplica às propriedades e aos métodos das interfaces que você optar por implementar. As interfaces opcionais que você preferir não implementar devem ser omitidas de seu assembly de extensão de processamento de dados. Para obter mais informações para saber se uma interface é obrigatória ou opcional, consulte a tabela mais adiante nesta seção.
Funcionalidade de extensão necessária
Cada extensão de processamento de dados do Reporting Services deve fornecer a seguinte funcionalidade:
Abrir uma conexão para uma fonte de dados.
Analisar uma consulta e retornar uma lista de nomes de campo para o conjunto de resultados.
Executar uma consulta na fonte de dados e retornar um conjunto de linhas.
Passar parâmetros de valor único à consulta.
Iterar por linhas do conjunto de linhas e recuperar dados.
Cada extensão de processamento de dados pode ser estendida para incluir a seguinte funcionalidade:
Analisar uma consulta e retornar uma lista dos nomes de parâmetros usados na consulta.
Analisar uma consulta e retornar a lista de campos pelos quais a consulta é agrupada.
Analisar uma consulta e retornar a lista de campos pelos quais a consulta é classificada.
Fornecer um nome de usuário e uma senha para conectar à fonte de dados que é independente da cadeia de conexão.
Iterar por linhas do conjunto de linhas e recuperar metadados auxiliares sobre os valores de dados.
Agregar dados no servidor.
Interfaces de extensão disponíveis
A tabela a seguir descreve as interfaces disponíveis e se implementação é obrigatória ou opcional.
Interface | Descrição | Implementação |
---|---|---|
IDbConnection | Representa uma sessão exclusiva com uma fonte de dados. Em um sistema de banco de dados cliente/servidor, a sessão pode ser equivalente a uma conexão de rede com o servidor. | Obrigatório |
IDbConnectionExtension | Representa mais propriedades de conexão que podem ser implementadas por extensões de processamento de dados do SSRS em relação à segurança e autenticação. | Opcional |
IDbTransaction | Representa uma transação local. | Obrigatório |
IDbTransactionExtension | Representa mais propriedades de transação que podem ser implementadas por extensões de processamento de dados do SSRS. | Opcional |
IDbCommand | Representa uma consulta ou um comando usado durante a conexão a uma fonte de dados. | Obrigatório |
IDbCommandAnalysis | Representa mais informações de comando para analisar uma consulta e retornar uma lista de nomes de parâmetros usados na consulta. | Opcional |
IDataParameter | Representa um parâmetro ou par de nome/valor passado a um comando ou a uma consulta. | Obrigatório |
IDataParameterCollection | Representa uma coleção de todos os parâmetros relevantes a um comando ou a uma consulta. | Obrigatório |
IDataReader | Fornece um método de leitura de um fluxo de dados somente encaminhamento, somente leitura a partir da sua fonte de dados. | Obrigatório |
IDataReaderExtension | Fornece um método de leitura de um ou mais fluxos somente encaminhamento de conjuntos de resultados, obtidos pela execução de um comando em uma fonte de dados. Essa interface fornece maior suporte para agregados de campo. | Opcional |
IExtension | Fornece a classe base para uma extensão de processamento de dados do Reporting Services. Também permite que um implementador inclua um nome localizado para a extensão e passe configurações do arquivo de configuração para a extensão. | Obrigatório |
As interfaces de extensão de processamento de dados são idênticas a um subconjunto das interfaces de provedor de dados, métodos e propriedades do .NET Framework sempre que possível. Para obter mais informações sobre a implementação de um provedor de dados completo do .NET Framework, confira "Implementar um provedor de dados .NET Framework Data Provider" na sua documentação do SDK (Software Development Kit) do .NET Framework.