Archiv

Archiv für Dezember, 2008

SSRS – Dynamische Datenquellen in Reporting Services

18. Dezember 2008 admin Keine Kommentare

Wenn ein Bericht der mit Microsoft-SQL-Server 2005 Reporting-Services (SSRS) entwickelt wurde, auf verschiedene Server oder Datenbanken zugreifen muss, so ist dies durch sogenannte dynamische Datenverbindungen möglich.

Es gibt hier Lösungsszenarien die über einen “embedded Codeblock” in den Berichtseigenschaften eine Funktion definieren und anschließend über diese Funktion einen Connection-String (Verbindungszeichenfolge) zurückgeben der über einen Parameter der Funktion selektiert werden kann.

Für den oben beschriebenen Fall muss man also (zumindest rudimentäre) Kenntnisse der VB Programmierung haben. Weiterhin ist es nicht sofort offensichtlich wie die Verbindungszeichenfolgen zustande kommen.

Mir ist in einem solchen Fall der Standardweg lieber, insbesondere deshalb weil es nicht möglich ist, die Zeichenfolge zur Laufzeit wirklich dynamisch zu generieren.
Die einzige Möglichkeit ist, eine Auswahl von Verbindungen zur Enwicklungszeit zu definieren die dann vom Benutzer ausgewählt werden können.

Zwei Beispiele sollen den Unterschied einmal herausstellen:

FALSCH
(weil zur Laufzeit erst zusammengebaut):

 
="Data Source=" & Parameter!Server.Value & ";Initial Catalog=" & Parameter!DB.Value

RICHTIG
(Variable enthält konstant definierte Auswahl an Verbindungen):

=Parameter!Connection.Value


Im Parameter Connection wird dann der gesamte Connection-String abgelegt. Wenn man das Default-Value dann noch auf NULL setzt, muss der Benutzer erst die Datenquelle aussuchen bevor er den Bericht starten kann.

Fazit:

Die Dynamik bei den Berichtsdatenquellen bezieht sich nur auf eine vorher bestimmte Anzahl von möglichen Verbindungen und kann nicht zur Laufzeit direkt bestimmt werden. z.B. Über Ausdrücke, Stringhandling, Abfrage oder dergleichen.

:roll:

KategorienSQL-Server 2005

SSIS – Dynamische Derived Column durch Expressions

2. Dezember 2008 admin 5 Kommentare

Ich möchte in diesem Artikel einmal die Möglichkeiten von zur Laufzeit generierten, abgeleiteten Spalten beschreiben. In der englischen Version von SSIS wird das Objekt im Datenfluss als “Derived column” bezeichnet. In der deutschen Variante handelt es sich um eine “abgeleitete Spalte”.

Wie schon erwähnt wird diese Komponente im Datenfluss eingesetzt. Ihre Aufgabe ist es, neue Datenspalten im Datenfluss zu generieren bzw. bestehende Spalten mit neuen Inhalten zu befüllen.

Wer nun von außen per Parameter oder Meta-Steuertabelle die Formel zur Berechnung einer neuen Spalte festlegen möchte, kann dies zur Laufzeit mit den üblichen Expressions realisieren.

Der unbedarfte Leser wird nun vielleicht im Datenfluss die Komponente anklicken und in den Eigenschaften die Expression / Ausdruck-Zeile suchen. Die Expression-Box befindet sich aber in diesem Fall nicht an der gewohnten Stelle im Datenfluss. Die erste Reaktion ist dann: Schade, Expressions anlegen geht nicht! Mehr…

KategorienSQL-Server 2005