Implementieren einer Connection-Klasse für Datenverarbeitungserweiterungen
Das Connection-Objekt stellt eine Datenbankverbindung oder eine ähnliche Ressource dar und bildet den Ausgangspunkt für Benutzer einer SQL Server Reporting Services-Datenverarbeitungserweiterung. Es stellt Verbindungen zum Datenbankserver dar, wenn auch jede Entität mit ähnlichem Verhalten als Connection zur Verfügung gestellt werden kann.
Um ein Connection-Objekt zu implementieren, erstellen Sie eine Klasse, die IDbConnection implementiert und IDbConnectionExtension optional implementiert.
Sie müssen in Ihrer Implementierung sicherstellen, dass eine Verbindung erstellt und geöffnet wird, bevor die Befehle ausgeführt werden können. Stellen Sie in Ihrer Implementierung sicher, dass Clients die Verbindungen ausdrücklich (und nicht implizit) öffnen und schließen. Führen Sie die Sicherheitsprüfungen aus, wenn die Verbindung hergestellt wird. Dadurch, dass eine Verbindung für die anderen Klassen in der SSRS-Datenverarbeitungserweiterung vorhanden sein muss, wird sichergestellt, dass bei der Arbeit mit Ihrer Datenquelle stets Sicherheitsprüfungen durchgeführt werden.
Die Eigenschaften der gewünschten Verbindung werden als Verbindungszeichenfolge dargestellt. Die SSRS-Datenverarbeitungserweiterungen sollten unbedingt die Eigenschaft ConnectionString unterstützen und das bekannte Name/Wert-Paar verwenden, das von der OLE DB definiert ist.
![]() |
---|
Connection-Objekte können häufig nur mit großem Ressourcenaufwand abgerufen werden. Daher sollten Sie zur Reduzierung dieses Effekts ein Pooling der Verbindungen oder andere Techniken in Erwägung ziehen. |
IDbConnection erbt von IExtension. Sie müssen die IExtension-Schnittstelle als Teil der Implementierung der Verbindungsklassen implementieren. Durch die IExtension-Schnittstelle kann eine Klasse einen lokalisierten Erweiterungsnamen implementieren und erweiterungsspezifische Konfigurationsdaten verarbeiten, die in der Reporting Services-Konfigurationsdatei gespeichert sind.
Das Connection-Objekt enthält die LocalizedName-Eigenschaft durch seine Implementierung von IExtension. Die Reporting Services-Datenverarbeitungserweiterungen sollten unbedingt die Eigenschaft LocalizedName unterstützen, sodass die Benutzer einen bekannten und lokalisierten Namen auf der Benutzeroberfläche, z. B. dem Berichts-Manager, vorfinden.
IExtension versetzt das Connection-Objekt in die Lage, in der Datei RSReportServer.config gespeicherte, benutzerdefinierte Konfigurationsdaten abzurufen und zu verarbeiten. Weitere Informationen zur Verarbeitung benutzerdefinierter Konfigurationsdaten finden Sie in der Methode SetConfiguration.
Die Klasse, mit der IExtension implementiert wird, wird nicht aus dem Arbeitsspeicher entladen, wenn der Rest der Datenverarbeitungserweiterungsklassen entladen wird. Daher können Sie mithilfe der Extension-Klasse verbindungsübergreifende Statusdaten oder Daten speichern, die im Arbeitsspeicher zwischengespeichert werden können. Die Extension-Klasse verbleibt im Arbeitsspeicher, solange der Berichtsserver ausgeführt wird.
Sie können die Connection-Klasse so erweitern, dass Anmeldeinformationen in Reporting Services unterstützt werden, indem Sie IDbConnectionExtension implementieren. Wenn Sie die Eigenschaften IntegratedSecurity, UserName und Password der Schnittstelle IDbConnectionExtension implementieren, aktivieren Sie das Kontrollkästchen Integrierte Sicherheit und die Textfelder Benutzername und Kennwort im Dialogfeld Datenquelle im Berichts-Designer. Hierdurch kann der Berichts-Designer die Anmeldeinformationen für Datenquellen speichern und abrufen, die die Authentifizierung unterstützen. Die Anmeldeinformationen werden sicher gespeichert und verwendet, wenn Berichte im Vorschaumodus gerendert werden.
![]() |
---|
Die Implementierung von IDbConnectionExtension erfordert es implizit, dass Sie die Elemente der IDbConnection-Schnittstelle und der IExtension-Schnittstelle implementieren. Eine Beispiel-Connection-Klassenimplementierung finden Sie unter SQL Server Reporting Services Product Samples. |
Siehe auch