Preparando para implementar uma extensão de processamento de dados
Antes de implementar a sua extensão de processamento de dados do SQL Server Reporting Services, você deve definir as interfaces a serem implementadas. Talvez você queira fornecer implementações específicas da extensão de todo o conjunto de interfaces, ou simplesmente pode querer concentrar a sua implementação em um subconjunto, como as interfaces IDataReader e IDbCommand, nas quais os clientes poderiam interagir principalmente com um conjunto de resultados como um objeto DataReader e usaria a extensão de processamento de dados do SSRS como uma ponte entre o conjunto de resultados e a sua fonte de dados.
Você pode implementar extensões de processamento de dados em um de dois modos:
As suas 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 a sua extensão de processamento de dados do Reporting Services não dará suporte a uma propriedade específica ou a um método, implemente a propriedade ou o método como sem operação. Se um cliente esperar um comportamento específico, lance 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 obrigató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.
Agregado 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. No caso de um sistema de banco de dados cliente/servidor, a sessão pode ser equivalente a uma conexão de rede com o servidor. |
Obrigatória |
IDbConnectionExtension |
Representa propriedades de conexão adicionais que podem ser implementadas através de extensões de processamento de dados do SSRS relativas a segurança e a autenticação. |
Opcional |
IDbTransaction |
Representa uma transação local. |
Obrigatória |
IDbTransactionExtension |
Representa propriedades de transação adicionais que podem ser implementadas através de 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ória |
IDbCommandAnalysis |
Representa informações de comando adicionais para a análise de uma consulta e para o retorno de uma lista de nomes de parâmetro usados na consulta. |
Opcional |
IDataParameter |
Representa um parâmetro ou par de nome/valor passado a um comando ou a uma consulta. |
Obrigatória |
IDataParameterCollection |
Representa uma coleção de todos os parâmetros relevantes a um comando ou a uma consulta. |
Obrigatória |
IDataReader |
Fornece um método de leitura de um fluxo de dados somente encaminhamento, somente leitura a partir da sua fonte de dados. |
Obrigatória |
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 oferece suporte adicional para agregações 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ória |
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, consulte "Implementando um provedor de dados .NET Framework" na sua documentação do SDK (Software Development Kit) do .NET Framework.
Consulte também