View Full Version : CREATE VARIABLE
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
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
Wofür braucht man die eigentlich?
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
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.