View Full Version : AS400 Jobs /CL) unter Access starten
Franz Karl
29-04-11, 09:42
Hallo,
gibt es eine Möglichkeit ein CL Programm auf der AS400 auch durch eine Access-prozedur aufzurufen ?
Z.B.
SBMJOB CMD(CALL PGM(LIB_CL/SISCON100))
Danke für die Hilfe
Franz - Karl
Das kannst du mittels einer Passthru-Abfrage per
CALL QSYS.QCMDEXC ('Kommando' 1234567890.00000)
Wobei der Zahlwert im Format 10.5 die Länge des Strings sein muss.
Franz Karl
29-04-11, 13:49
Vielen Dabnk für die Info,
d.h. der genau Systax wäre dann
CALL QSYS.QCMDEXC
('SBMJOB CMD(CALL PGM(LIB_CL/SISCON100)) '
1234567890.00000)
bzw. ich verstehe das nicht ganz mit dem Zahlenstring)
Bitte nochmals um kurzes Beispiel
Vielen Dank
Da ich zu faul zum zählen bin, Beispiel:
CALL QSYS.QCMDEXC
('ABCDEFGH', 0000000008.00000)
SQL übersetzt eine Zahl in das passende Format, hier also Packed(15, 5).
Man kann sich das auch noch etwas einfache machen:
CALL QSYS.QCMDEXC
(cast('Irgend ein Kommando' as char(256), cast(256 as decimal(15, 5)))
Wichtig ist ja nur zu wissen, dass QCMDEXC genau 2 Parameter braucht:
1. Character
2. Packed(15, 5) mit der Länge des Parameters 1
Wobei eben Leerzeichen am Ende egal sind.
Wichtig ist allerdings noch, wenn du Hochkommatas innerhalb des Kommandos brauchst, so musst du diese verdoppeln, sonst bekommst du einen SQL-Syntaxfehler !
Franz Karl
29-04-11, 15:52
Hallo,
habe jetzt also eine PassThrough Abfrage erstellt auf die Bibliothek wo das CL liegt
Danach in der Abfrage den Befehl
CALL QSYS.QCMDEXC (cast('SBMJOB CMD(CALL PGM(LIB_CL/SISCON100)) ' as char(256), cast(256 as decimal(15, 5)))
eingefügt.
Erhalte beim ausführen aber die Meldung
SQL0104 - Token , ungültig . Gültige Token : FOR CCSID . (#-104)
Was fehlt mir noch ?
Gruss
Franz
Franz Karl
29-04-11, 15:52
Hallo,
habe jetzt also eine PassThrough Abfrage erstellt auf die Bibliothek wo das CL liegt
Danach in der Abfrage den Befehl
CALL QSYS.QCMDEXC (cast('SBMJOB CMD(CALL PGM(LIB_CL/SISCON100)) ' as char(256), cast(256 as decimal(15, 5)))
eingefügt.
Erhalte beim ausführen aber die Meldung
SQL0104 - Token , ungültig . Gültige Token : FOR CCSID . (#-104)
Was fehlt mir noch ?
Gruss
Franz
Eine Klammer nach dem CHAR(256).
Franz Karl
29-04-11, 16:09
OK,
jetzt kommt
SQL0104 - Token Cast ungültig. Gültige Token <INTEGER><CHARSTRING> DLVALUE DATE TIME TIMESTAMP . (#104)
Gruss
Franz Karl
29-04-11, 16:20
So gehts super
CALL QSYS.QCMDEXC ('CALL LIB_CL/SISTEST)', 0000000019.00000)
Vielen Dank für die Hilfe
So gehts super
CALL QSYS.QCMDEXC ('CALL LIB_CL/SISTEST)', 0000000019.00000)
Das sind aber nicht 19 sondern 20 Zeichen.