[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    70

    Smile AS400 Jobs /CL) unter Access starten

    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2007
    Beiträge
    70
    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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 !
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jan 2007
    Beiträge
    70
    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

  6. #6
    Registriert seit
    Jan 2007
    Beiträge
    70

    Smile

    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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Eine Klammer nach dem CHAR(256).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Jan 2007
    Beiträge
    70

    Smile

    OK,

    jetzt kommt

    SQL0104 - Token Cast ungültig. Gültige Token <INTEGER><CHARSTRING> DLVALUE DATE TIME TIMESTAMP . (#104)

    Gruss

  9. #9
    Registriert seit
    Jan 2007
    Beiträge
    70
    So gehts super

    CALL QSYS.QCMDEXC ('CALL LIB_CL/SISTEST)', 0000000019.00000)


    Vielen Dank für die Hilfe

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Zitat Zitat von Franz Karl Beitrag anzeigen
    So gehts super

    CALL QSYS.QCMDEXC ('CALL LIB_CL/SISTEST)', 0000000019.00000)
    Das sind aber nicht 19 sondern 20 Zeichen.

  11. #11
    Registriert seit
    Jan 2007
    Beiträge
    70
    Zähl1 19, aber zumindest funktionert es.

    Gruss

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nun ja, ich weiß schon warum ich mir einfach eine SQL-Prozedur auf QSYS.QCMDEXC erstellt habe und diese dann aufrufe.

    Da dieser Programm-Call eine besondere SQL-Funktion der AS/400 ist, kann ich schon verstehen warum die AS/400 explizite Konstanten haben will.

    Aber einen Versuch wars ja wert .
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Java JDBC Sperre
    By Xanas in forum NEWSboard Java
    Antworten: 11
    Letzter Beitrag: 29-11-10, 12:45
  2. Access 2000 und AS400
    By cocoa in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 04-03-09, 16:47
  3. Programm auf anderer AS400 starten
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 04-07-06, 11:52
  4. Client Access for Web per 5250 starten
    By Muchi in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 19-08-05, 08:43
  5. AS400 - Client Access - Win 2003 termserv
    By ehninger in forum NEWSboard Windows
    Antworten: 1
    Letzter Beitrag: 25-06-04, 21:45

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •