Forums Neueste Beiträge
 

Reporting Services 2005

10/10/2007 - 10:25 von Alfred Schlechter | Report spam
Hallo NG,

folgendes Problem ist für uns zu lösen:

Es sollen Datenauswertungen mit den RS 2005
gemacht werden, wobei einige der Tabellen des
zugrundeliegenden DB-Modells erst zur Laufzeit der
Hauptapplikation dynamisch angelegt werden.
Das bedeutet, daß die Tabellennamen der Queries in
den Reports, erst zur Laufzeit feststehen und als Para-
meter übergeben werden müßten.

1. Frage: Ist sowas mit den RS überhaupt möglich,
oder brauchen die immer ein statisches DB-Modell?

Folgendes habe ich in diesem Zusammenhang
versucht, eine Query in einer SP mit dy-
namschischem SQL:


ALTER PROCEDURE [IMA].[SelectDevice]
@table nvarchar(20)
AS
BEGIN

DECLARE @sql as nvarchar(100)
SET @sql = 'select * from ' + @table ;
exec sp_executesql @sql ;

END
return


2.Frage: Diese SP wird zwar ohne Fehler ausgeführt
aber wie komme ich an das Resultset ran?


Vielen Dank im Voraus für Antworten.

MfG
Alfred Schlechter
 

Lesen sie die antworten

#1 Christoph Muthmann
10/10/2007 - 11:09 | Warnen spam
Alfred Schlechter wrote:
Hallo NG,

folgendes Problem ist für uns zu lösen:

Es sollen Datenauswertungen mit den RS 2005
gemacht werden, wobei einige der Tabellen des
zugrundeliegenden DB-Modells erst zur Laufzeit der
Hauptapplikation dynamisch angelegt werden.
Das bedeutet, daß die Tabellennamen der Queries in
den Reports, erst zur Laufzeit feststehen und als Para-
meter übergeben werden müßten.

[snip]



Hallo Alfred,
wenn die Tabellennamen bekannt sind, sollte folgendes im Report gehen:

declare @ergebnis table(Feld1 int)
declare @cmd varchar(1000)

set @cmd = 'select Feld1 from jetzt_existierende_Tabelle'

insert into @ergebnis
exec (@cmd)

select *
from @ergebnis

Den oben gewàhlten Tabellennamen kannst Du auch vorher aus einer
Abfrage ermitteln, oder per Berichtsparameter (evtl. wieder mit
Abfrage) übergeben.

Dann sàhe es z. B. so aus:
set @cmd = 'select Feld1 from ' + @Berichtsparameter

Einen schönen Tag noch,
Christoph
(Please post ALL replies to the newsgroup only unless indicated
otherwise)

Ähnliche fragen