Variablen in mehreen Sichten setzen

29/11/2007 - 10:08 von Patrick Pohlmann | Report spam
Hallo Zusammen,

ich muss mtl. eine Vielzahl von Berichten (ca. 20) erstellen, die auf
verschiedenen Sichten (ca. 30) beruhen die wiederrum mehr oder weniger auf
etwas mehr als einer Handvoll Auswahlwerten beruhen.

Diese sind z.B.

Kundennummer
Berichstbeginn
Berichtsende
usw.

Wie würde Ihr vorheben? Bisher habe ich das so gemacht, dass ich die
jeweiligen Sichten per VBA angepasst habe, d.h. die WHERE Kondition anhand
der Werte für die Kriterien angepasst habe. Das ist aber im Grunde ziemlich
mühsam, da ich das ja zig mal machen muss, im Grunde aber immer den selben
Wert àndere.

Jetzt habe ich mir verschiedene Alternativen ausgedacht.

1. Ich erstelle eine Sicht (Sicht_Abfragewerte) wie folgt:

SELECT 123456789 as Kundennummer, '01.11.2007' as DBeginn, '31.11.2007' as
DEnde

und verbinde meine jeweiligen Sichten über JOIN mit dieser Sicht. In diesem
Fall müsste ich nur die Sicht Sicht_Abfragewerte àndern, alle anderen würden
bleiben wie sie sind.

2. Gibt es ggf. die Möglichkeit in SQL2005 Globale Variablen zu haben? Dann
müsste ich diese nur einmal füllen und meine jeweiligen Sichten so àndern
das hier die Variablen abgefragt werden.

Gibt es andere Möglichkeiten dies zu lösen? Wie würdet Ihr vorgehen?

Vielen Dank für Eure Tipps

Grüße

Patrick!
 

Lesen sie die antworten

#1 Hannes Brunner
29/11/2007 - 11:50 | Warnen spam
Hallo Patrick,

Patrick Pohlmann schrieb:
Hallo Zusammen,

ich muss mtl. eine Vielzahl von Berichten (ca. 20) erstellen, die auf
verschiedenen Sichten (ca. 30) beruhen die wiederrum mehr oder weniger auf
etwas mehr als einer Handvoll Auswahlwerten beruhen.

Diese sind z.B.

Kundennummer
Berichstbeginn
Berichtsende
usw.

Wie würde Ihr vorheben? Bisher habe ich das so gemacht, dass ich die
jeweiligen Sichten per VBA angepasst habe, d.h. die WHERE Kondition anhand
der Werte für die Kriterien angepasst habe. Das ist aber im Grunde ziemlich
mühsam, da ich das ja zig mal machen muss, im Grunde aber immer den selben
Wert àndere.

Jetzt habe ich mir verschiedene Alternativen ausgedacht.

1. Ich erstelle eine Sicht (Sicht_Abfragewerte) wie folgt:

SELECT 123456789 as Kundennummer, '01.11.2007' as DBeginn, '31.11.2007' as
DEnde

und verbinde meine jeweiligen Sichten über JOIN mit dieser Sicht. In diesem
Fall müsste ich nur die Sicht Sicht_Abfragewerte àndern, alle anderen würden
bleiben wie sie sind.



Keine gute Idee. Erstens hat du da ein Sicherheitsproblem da du dem
Anwender mehr Rechte als notwendig einràumen musst. Zweitens ist dieser
Ansatz nicht Mehrbenutzerfàhig.

2. Gibt es ggf. die Möglichkeit in SQL2005 Globale Variablen zu haben? Dann
müsste ich diese nur einmal füllen und meine jeweiligen Sichten so àndern
das hier die Variablen abgefragt werden.

Gibt es andere Möglichkeiten dies zu lösen? Wie würdet Ihr vorgehen?



Ich würde mit gespeicherten Prozeduren arbeiten denen die entsprechenden
Parameter übergeben werden. IMHO der beste Ansatz, wenn auch evtl. mit
etwas mehr Arbeit verbunden. Aber schön übersichtlich.

Ein andere Variante wàre eine Hilfstabelle in denen die Parameter
gespeichert werden, mit z.B. der Benutzerkennung als Primàrschlüssel.
Diesen Ansatz hatte ich früher mal verfolgt, ihn dann aber zugusten der
SP-Lösung fallen gelassen.

Gruß
Hannes

Ähnliche fragen