Anmelden

View Full Version : RUNSQL Host Variable zurückgeben



Seiten : [1] 2

oulbrich
02-04-14, 06:06
Hallo, ich möchte innerhalb eines CLP per RUNSQL eine Variable innerhalb einer SELECT Anweisung an das CLP zurückgeben. Leider funktioniert das mit INTO nicht. Fehler SQL0090 Host-Variable hier nicht zulässig. RUNSQL SQL('SELECT SUM(WERT) INTO:SUMWERT FROM TABELLE') IF &SUMWERT ..... kann man im CLP keine Host Variablen benutzen? Gruss oulbrich

B.Hauser
02-04-14, 06:32
SELECT und SELECT ... INTO sind im CL mit dem neuen RUNSQL Befehl nicht möglich!

Der einzige Workaround in CL ist m.E.:
Mit RUNSQL eine temporäre View zu erstellen, und diese wie eine ganz normale Datei zu verarbeiten, d.h. mit DCLF (Declare File) definieren und mit RCVF (Receive File) verarbeiten.

Birgitta

Fuerchau
02-04-14, 07:06
CLP ist keine "HLL" und damit von SQL ausgeschlossen.
Dafür musst du am besten einfach ein kleines ILERPG schreiben.

oulbrich
02-04-14, 07:13
Ok. Danke für die Infos

B.Hauser
02-04-14, 07:57
Obwohl CL-Programme in der heutigen Zeit als ILE, also mit dem Attribut CLLE erstellt werden sollten, ist dies jedoch nicht die Voraussetzung, den CL-Befehl RUNSQL einzubinden.

Sprich, RUNSQL kann auch in (alten) CLP-Programmen verwendet werden.

Hier nochmal die Beschreibung des RUNSQL-Befehls:
Using the RUNSQL CL command (http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Fsqlp%2Frbafyrunsql.htm)

Birgitta

Pikachu
02-04-14, 08:16
Mit OPNQRYF sollte so etwas gehen ...

Fuerchau
02-04-14, 08:53
Da man aber einen DCLF dafür benötigt, ist das nicht so einfach.
Außerdem gibt es hier einen anderen Thread, der ab V7R1 teilweise Probleme mit OPNQRYF meldet, da dieser ja die CQE statt der SQE verwendet.

Pikachu
02-04-14, 09:17
Außerdem gibt es hier einen anderen Thread, der ab V7R1 teilweise Probleme mit OPNQRYF meldet, da dieser ja die CQE statt der SQE verwendet.

Du meinst sicher dieses Thema (http://www.newsolutions.de/forum-systemi-as400-i5-iseries/threads/19008-OPNQRYF-im-RPG-Programm-durch-SQL-ersetzen).

Da gibt's mit SQL selber noch viele andere Probleme ...

Robi
02-04-14, 09:21
oder so:
http://www.code400.com/forum/showthread.php/6827-QSH-to-Environment-Vars

oder, etwas anders, hier
http://forums.iprodeveloper.com/forums/aft/53254

Robi

Fuerchau
02-04-14, 10:26
Da fällt mir auch noch REXX ein.
Hier kann man CMD's (auch mit returnwerten) und SQL (mit Hostvariablen) lustig mischen, Funktionen (auch in "Copystrecken") mit Parametern und Returnwerten stricken und vieles mehr.
Äußerst flexibel und von der Laufzeit nicht uninteressant, da man meist sowieso externe Funktionen/Programme aufruft.
Sogar "Drucken" in eine SPLF klappt.
Man kann sogar flexible Parameter übergeben.