Implémenter une classe d’Connecter ion pour une extension de traitement des données
L’objet Connection représente une connexion de base de données ou une ressource similaire et représente le point de départ pour les utilisateurs d’une extension pour le traitement des données SQL Server Reporting Services. Il représente des connexions aux serveurs de base de données, bien que toute entité ayant un comportement similaire puisse être exposée comme un objet Connection.
Pour implémenter un objet Connection, créez une classe qui implémente IDbConnection et peut implémenter IDbConnectionExtension.
Dans votre implémentation, vous devez garantir qu'une connexion est créée et ouverte avant que les commandes puissent être exécutées. Veillez à ce que votre implémentation oblige les clients à ouvrir et fermer des connexions explicitement, plutôt qu'une implémentation qui ouvre et ferme des connexions implicitement pour le client. Effectuez vos vérifications de la sécurité lorsque la connexion est obtenue. L’exigence d’une connexion existante pour les autres classes de votre extension de traitement des données SSRS garantit que les case activée de sécurité sont toujours effectuées lors de l’utilisation de votre source de données.
Les propriétés de la connexion souhaitée sont représentées sous la forme d'une chaîne de connexion. Les extensions de traitement des données SSRS doivent prendre en charge la ConnectionString propriété à l’aide du système de paire nom/valeur familier défini par OLE DB.
Remarque
Les objets Connection consomment souvent beaucoup de ressources, vous pouvez donc envisager de regrouper des connexions ou faire appel à d’autres techniques pour réduire ce problème.
IDbConnection hérite de IExtension. Vous devez implémenter l'interface IExtension dans le cadre de votre implémentation de classe de connexion. L'interface IExtension permet à une classe d'implémenter un nom d'extension localisé et de traiter des informations de configuration spécifiques à l'extension stockées dans le fichier de configuration Reporting Services.
Votre objet Connection contient la propriété LocalizedName dans le cadre de son implémentation de IExtension. Les extensions de traitement des données Reporting Services doivent prendre en charge la LocalizedName propriété. La prise en charge permet aux utilisateurs de rencontrer un nom familier localisé pour l’extension dans une interface utilisateur, comme le Gestionnaire de rapports.
IExtension permet également à votre objet Connection d’extraire et traiter les données de configuration personnalisées stockées dans le fichier RSReportServer.config. Pour plus d'informations sur le traitement des données de configuration personnalisées, consultez la méthode SetConfiguration.
La classe qui implémente IExtension n’est pas déchargée de la mémoire lorsque le reste de vos classes d’extension de traitement des données est déchargée. En raison de ce fait, vous pouvez utiliser votre classe d’extension pour stocker des informations d’état de connexion croisée ou pour stocker des données pouvant être mises en cache en mémoire. Votre classe Extension reste en mémoire durant l’exécution du serveur de rapports.
Vous pouvez étendre votre classe Connection pour inclure la prise en charge des informations d’identification dans Reporting Services en implémentant IDbConnectionExtension. Quand vous implémentez les propriétés IntegratedSecurity, UserName et Password de l’interface IDbConnectionExtension, vous cochez la case Sécurité Intégrée et activez les zones de texte Nom d’utilisateur et Mot de passe de la boîte de dialogue Source de données dans le Concepteur de rapports. Cette opération permet au Générateur de rapports de stocker et d'extraire des informations d'identification pour les sources de données qui prennent en charge l'authentification. Les informations d'identification sont stockées de manière sécurisée et utilisées lors du rendu des rapports en mode aperçu.
Notes
L'implémentation implicite de IDbConnectionExtension nécessite d'implémenter les membres des interfaces IDbConnection et IExtension.
Pour obtenir un exemple d’implémentation de classe Connecter ion, consultez Exemples Reporting Services sur CodePlex (SQL Server Reporting Services SSRS)