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. Ele representa as conexões com servidores de banco de dados, embora qualquer entidade com comportamento semelhante possa ser exposta como uma Connection.
Para implementar um objeto Connection, crie uma classe que implementa IDbConnection e que, opcionalmente, implementa 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ção
Os objetos Connection costumam fazer uso intensivo de recursos para sua obtenção e, portanto, é recomendável considerar o pool de conexões ou outras técnicas para atenuar 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.
O 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.
O IExtension também permite que o 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 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 classe Extension permanece em memória enquanto o servidor de relatório estiver em execução.
Estenda a classe Connection para incluir suporte para credenciais no Reporting Services implementando IDbConnectionExtension. Quando você implementa as propriedades IntegratedSecurity, UserName e Password da interface IDbConnectionExtension, você habilita a caixa de seleçã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ção
A implementação de IDbConnectionExtension exige, implicitamente, que você implemente os membros das interfaces IDbConnection e IExtension.
Para obter uma implementação de exemplo da classe Connection, consulte Amostras de produto do SQL Server Reporting Services.
Consulte Também
Extensões do Reporting Services
Implementar uma extensão de processamento de dados
Biblioteca de extensões do Reporting Services