Shared Data Sources gab es auch schon vor SQL Server 2008 R2. Mit dem SQL Server 2008 R2 kamen dann die Shared Datasets dazu. Eigentlich eine feine Sache. Denn insbesondere bei mehreren Berichten, die gleiche Parameter haben, bietet es sich an, die Parameter Datensets als shared anzubieten. Was aber tun, wenn ein Bericht dynamisch seine Datenquelle wechseln soll? Da gab es bisher den Trick, eine embedded Data Source zu nutzen und dort einen Ausdruck zu hinterlegen.

Somit konnte zur Laufzeit – über Parameterwerte zum Beispiel für den Server und die Datenbank – bestimmt werden, aus welcher Datenquelle der Bericht seine Daten bezieht. So ein Ausdruck kann zum Beispiel so aussehen:

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

Das ist ja ganz schön, aber funktioniert das auch in Berichten, die Shared Datasets benutzen? Die Antwort: Nein, leider nicht!

Denn Shared Datasets brauchen eine Shared Data Source. Und in Shared Data Sources können verständlicherweise keine Ausdrücke hinterlegt werden, die erst zur Laufzeit ausgewertet werden.