PDA

View Full Version : Tool für SQL - Commands in CL



hs
27-02-04, 13:50
Hallo,

da die Möglichkeiten von RUNSQLSTM doch eher bescheiden sind, habe ich im Internet nach Alternativen gesucht und auch gefunden:

http://www.dbg400.net/excsql.html

Damit soll es möglich sein, einen SQL-Befehl direkt aus einem CL-auszuführen, einfach z.B. durch

EXCSQL SQL('UPDATE XX SET Y = ''A'' WHERE B = ''C''')

Da dies sehr vielversprechende klingt, habe ich mal versucht, dieses Prog. zu installieren.

Das dafür notwendige Programm "XMLPREVIEW", welches dieses Download beinhaltet, habe ich auch extrahieren und erzeugen können.

Leider gelingt es mir nicht, die weiteren Schritte auszuführen.

CALL PGM(QGPL/XMLPREVEW) PARM(MEINMBR MEINSRC MEINEBIB)

Das Programm wird ausgeführt, aber es passiert nichts.

Hat einer von euch das Tool schon im Einsatz und eine Idee, was ich falsch gemacht habe?

Vielen Dank für euere Unterstützung
HS

Fuerchau
27-02-04, 14:27
Es geht noch viel einfacher als du denkst.

Schreibe eine kleine REXX-Prozedur, die du dann einfach per STRREXPRC ausführst.

Da REXX Bestandteil des OS/400 ist brauchst du keine Tools.

Beispiel REXX-Quelle:


parse arg Stmt
address execsql
execsql "set option commit=*none"
execsql Stmt
exit


Beispiel Aufruf:

STRREXPRC SRCMBR(RUNSQLSTM)
SRCFILE(MYLIB/QREXSRC)
PARM('update mytable set field="X"')

Fehlerbehandlung und Nachrichtenauswertung kann man noch drumrum entwickeln.


Die andere Alternative ist QMQRY !
STRQM
dann kannst du SQL-QM's mit Parametern erstellen und per STRQMQRY ausführen.

Vorteil für beide Lösungen:

Auf dem Zielsystem benötigst du kein SQL, da sowohl REXX als auch die QMQRY-Objekte auf jeden fall laufen.