[NEWSboard IBMi Forum]

Thema: CL

  1. #1
    Registriert seit
    Jun 2011
    Beiträge
    3

    Unhappy CL

    Hallo Freunde.

    Ich suche eine Lösung für folgende Probleme:

    1.) Aus CL wird mittels STRQMQRY QMQRY(BIBLIOTHEK/ABFRAGE) SETVAR((VARIABLE &WERT))
    ein Query aufgerufen. Das Query liest eine Tabelle und erstellt ein neues File.
    Wie kann ich nun nach dem STRQMQRY den SQL Code abfragen ?

    2.) Wie lese ich mittels CL einen gestimmten Record in einem File, damit ich einzelne Feldinhalte auf einer Bildschirmmaske ausgegeben ?

    3.) Wie kann ich Felder in einer Bildschirmmaske für die Eingabe sperren und wieder entsperren?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wenn der SQL auf einen Fehler läuft, bekommst du eine Abbruchnachricht, die man mit MONMSG abfangen kann.

    Die Anzahl Sätze der Ausgabedatei kann man mit RTVMBRD abfragen.

    Einen bestimmten Satz kann man in CL nicht so einfach lesen. CL liest nur sequentiell und am Ende kannst du nicht erneut lesen.

    DSP-Felder sperrst/entsperrst du per DSPATR(PR) und einer Bezugszahl.
    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
    Jun 2011
    Beiträge
    3
    Der Befehl:
    STRQMQRY QMQRY(OLYNUM2S01) OUTPUT(*OUTFILE) +
    OUTFILE(QTEMP/OLYNUM2F01) +
    SETVAR((WSKAT &WSKAT) +
    (WEBECODE &WEBECODE))

    wird in CL ausgeführt. Mit monmsg kann ich den Returncode abfragen.
    Nur welchen Returncode ?
    Und kennst Du eine Möglichkeit den SQL Code (z.B. -100) abzufragen?

    Gruss
    Walter

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    STRQMQRY gibt keinen SQLCODE zurück, daher ist er auch nicht abzufragen.
    -100 gibt es nicht, du meinst wohl 100.
    100 gibt es nur wenn beim letzten Fetch keine Daten mehr da sind.
    Mit MONMSG kannst du nur SQL-Fehler abfangen, die das Ausführen überhaupt verhindern.

    Die Ausgabedatei wird ohne SQL-Fehler immer erstellt, ob Daten vorhanden sind kannst du per RTVMBRD ... NBRCURRCD(&RCDS) feststellen.
    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
    Nov 2003
    Beiträge
    2.403
    Auf einen bestimmten Datensatz kann in CL mittels des Befehls OVRDBF unter Angabe des Parameters POSITION() positioniert werden.

    PHP-Code:
    DCL VAR(&FIELDSTYPE(*CHARLEN(gesamte Länge)

    OVRDBF FILE(DateiPOSITION(*KEY AnzahlSchlüsselfelder Format &FIELDS)
    RCVF
    MONMSG MSGID
    (CPF0000EXEC(GOTO CMDLBL(ERROR)) 
    Falls der Schlüssel allerdings Leerzeichen am Ende enthält, geht das nur über einen Umweg mittels CHGVAR und CALL QCMDEXC:

    PHP-Code:
    DCL VAR(&FIELDSTYPE(*CHARLEN(gesamte Länge)
    DCL VAR(&STYPE(*CHARLEN(1VALUE('''')
    DCL VAR(&CMDTYPE(*CHARLEN(2000)
    DCL VAR(&CMDLENTYPE(*DECLEN(15 5VALUE(2000)

    CHGVAR VAR(&CMDVALUE('OVRDBF FILE(Datei) +
     POSITION(*KEY AnzahlSchlüsselfelder Format' 
    *BCAT +
     &
    *CAT &FIELDS *CAT &*CAT ')'/* ALLE ZEICHEN */
    CALL PGM(QCMDEXCPARM(&CMD &CMDLEN)
    RCVF
    MONMSG MSGID
    (CPF0000EXEC(GOTO CMDLBL(ERROR)) 

Similar Threads

  1. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 21:48
  2. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  3. Suche Liste Ersatzoperatoren im CL
    By kuempi von stein in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-07-06, 14:34
  4. Übergabeparameter im CL Script
    By bo1 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-06-06, 15:00
  5. Bibliothekssicherungsliste via CL ändern
    By becama in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 23-06-06, 14:46

Berechtigungen

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