Anmelden

View Full Version : CREATE VARIABLE



Oli001
08-07-13, 11:21
Hallo,

ich vermute den Befehl

CREATE VARIABLE USER_CLASS INT DEFAULT (CLASS_FUNC(USER))

kann man erst ab der Version 7.1 absetzen, oder?
Wir haben hier aktuell die Version 6.1

Grüße Oli

B.Hauser
08-07-13, 12:09
Hallo,

ich vermute den Befehl

CREATE VARIABLE USER_CLASS INT DEFAULT (CLASS_FUNC(USER))

kann man erst ab der Version 7.1 absetzen, oder?
Wir haben hier aktuell die Version 6.1

Grüße Oli

Richtig vermutet!

Globale Variablen wurden erst mit Release 7.1 eingeführt (und soweit ich weiß gibt es auch kein PTF das die Funktionalität für 6.1 zur Verfügung stellt).

Birgitta

Fuerchau
08-07-13, 19:37
Wofür braucht man die eigentlich?

B.Hauser
09-07-13, 06:22
Die Diskussion hatten wir schon!

Globale Variable funktionieren wie Datenbereiche in der QTEMP, d.h. können verwendet werden um auf Job-Ebene Werte zu setzen oder speichern.
Der Default-Wert wird bei der ersten Verwendung der globalen Variablen innerhalb eines Jobs ermittelt und gesetzt. Über ein SQL SET-Statement können die Werte in der globalen Variable (auf Job-Ebene) verändert werden.
Im Gegensatz zu Datenbereichen, können globale Variablen u.a. in Views, UD(T)F oder Trigger verwendet werden.
Beispiele:
In einem Mandanten fähigen System wird der aktuelle Mandant in einer globalen Variablen gespeichert. Über SQL Views können mit Hilfe der globalen Variablen jeweils nur die Daten des aktuellen Mandanten ausgegeben, ohne dass eine zusätzliche WHERE-Bedingung angegeben werden muss.
In einer Rekursiven View (z.B. Stücklisten-Auflösung) wird der Start-Punkt (Fertigprodukt, das aufgelöst werden soll) gesetzt.
Globale Variablen können z.B. auch als Parameter-Werte an UDTFs übergeben werden, die wiederum in Views eingebettet sind.
usw.

Birgitta

Fuerchau
09-07-13, 08:14
Damit kann man ja seine Anwender ganz schön verwirren.
Vor allem wenn ich mit ODBC zugreife wäre ich in diesem Fall gezwungen erst Variablen zu setzen.

Außerdem, wer sagt mir, dass die von mir gesetzte globale Variable nach einem Programmaufruf (ggf. einer Fremdsoftware) noch den erwarteten Inhalt hat?

Ich wünsche allen viel Spaß bei der Verwendung solcher in meinen Augen unnötigen Features mit der anschließenden Fehlersuche.

Aber diese Diskussion ist sowieso müßig, da Anwendungsdesign eher als Stiefkind behandelt wird.