Partilhar via


Implementando uma classe Connection para uma extensão de processamento de dados

O objeto Connection representa uma conexão de banco de dados ou recurso semelhante e é o ponto de partida para usuários de uma extensão de processamento de dados do SQL Server Reporting Services. Representa conexões a servidores de banco de dados, embora qualquer entidade com comportamento semelhante possa ser exibida como um Connection.

Para implementar um objeto Connection, crie uma classe que implemente IDbConnection e que, opcionalmente, implemente IDbConnectionExtension.

Em sua implementação, você deve garantir que uma conexão seja criada e aberta antes que comandos possam ser executados. Garanta que a sua implementação exija que os clientes abram e fechem conexões explicitamente, em vez de fazer com que ela abra e feche conexões de forma implícita para o cliente. Execute as suas verificações de segurança quando a conexão for obtida. A exigência de uma conexão existente para as outras classes da sua extensão de processamento de dados SSRS garantirá que essas verificações de segurança sejam sempre executadas quando você estiver trabalhando com a sua fonte de dados.

As propriedades da conexão desejada são representadas como uma cadeia de conexão. É altamente recomendável que as extensões de processamento de dados SSRS deem suporte à propriedade ConnectionString usando o sistema de pares de nome/valor familiar definido por OLE DB.

ObservaçãoObservação

Os objetos Connection quase sempre exigem muitos recursos para sua obtenção e, portanto, talvez você queira considerar o pool de conexões ou outras técnicas para mitigar isso.

IDbConnection herda de IExtension. Você deve implementar a interface IExtension como parte da sua implementação da classe de conexão. A interface IExtension permite que uma classe implemente um nome de extensão localizado e processe informações de configuração específicas da extensão armazenadas no arquivo de configuração do Reporting Services.

Seu objeto Connection contém a propriedade LocalizedName por meio de sua implementação de IExtension. É altamente recomendável que as extensões de processamento de dados do Reporting Services deem suporte à propriedade LocalizedName, para que usuários encontrem um nome familiar para a extensão em uma interface do usuário, como o Gerenciador de Relatórios.

IExtension também permite que o seu objeto Connection recupere e processe dados de configuração personalizados armazenados no arquivo RSReportServer.config. Para obter mais informações sobre como processar dados de configuração personalizados, consulte o método SetConfiguration.

A classe que implementa IExtension não é descarregada da memória quando o resto de suas classes de extensão de processamento de dados é descarregado. Por causa disso, você pode usar a sua classe Extension para armazenar informações do estado da conexão cruzada ou armazenar dados que podem ser armazenados em cache em memória. A sua classe Extension permanecerá em memória enquanto o servidor de relatório estiver em execução.

Você pode estender a sua classe Connection para incluir suporte a credenciais no Reporting Services implementando IDbConnectionExtension. Quando você implementa as propriedades IntegratedSecurity, UserName ePassword da interface IDbConnectionExtension, habilita a caixa de verificação Segurança Integrada e as caixas de texto Nome de usuário e Senha da caixa de diálogo Fonte de Dados do Designer de Relatórios. Isto permite que o Designer de Relatórios armazene e recupere credenciais para fontes de dados que dão suporte a autenticação. As credenciais são armazenadas de forma protegida e usadas durante a renderização de relatórios em modo de visualização.

ObservaçãoObservação

A implementação de IDbConnectionExtension exige, implicitamente, que você implemente os membros das interfaces IDbConnection e IExtension.

Para obter um exemplo da implementação da classe Connection, consulte SQL Server Reporting Services Product Samples (em inglês).