[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2007
    Beiträge
    29

    Kontrollierter Abbruch in COBOL

    Hallo zusammen,

    ich habe folgendes COBOL-Problem:

    innerhalb eines COBOL-Programmes mit embedded SQL fange ich SQL-Fehler durch folgende Anweisung ab:

    EXEC SQL
    WHENEVER SQLERROR GOTO UP-SQL-ERROR
    END-EXEC

    UP-SQL-ERROR Section holt sich aus der SQLCA gewisse Informationen, schreibt diese in eine Protokolltabelle und mach dann einen GOBACK.

    Allerdings wäre es Wartungsfreundlicher, wenn das Programm nicht wie in diesem Falle fehlerfrei beendet werdeb würde, sondern das Programm mit einer Fehlermeldung abbricht.

    In der COBOL-Reference habe ich den STOP literal - Befehl gefunden. Leider hält dieser das Programm nur an und schreibt eine Message in die Nachrichtendatei *SYSOPR.

    Idealerweise wäre aber eine sofortige Beendigung des Programmes mit einer Fehlernachricht.

    Kenn jemand eine COBOL-Anweisung, mit der ich einen Abbruch des Programmes mit einer Fehlermeldung erreichen kann ?

    Auf dem Großrechner mußte vor dem GOBACK nur folgende Anweisung durchgeführt werden: MOVE 12 to RETURN-CODE

    Leider kennt das COBOL auf der i5 scheinbar keinen Return-Code, zumindest kann man diesen nicht explizit ansprechen.


    Vorab vielen Dank für eure Hilfe und allen noch einen schönen Feierabend.


  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    mit dem klein gedruckten von COBOL/400 bin ich nicht firm, aber da gibt es immer noch die Option mit QMHSNDPM eine Escape Message (z.B.: CPF9898, der man noch einen Text mitgeben kann) zu schicken.

    D*B

    Zitat Zitat von wolfinho Beitrag anzeigen
    Hallo zusammen,

    ich habe folgendes COBOL-Problem:

    innerhalb eines COBOL-Programmes mit embedded SQL fange ich SQL-Fehler durch folgende Anweisung ab:

    EXEC SQL
    WHENEVER SQLERROR GOTO UP-SQL-ERROR
    END-EXEC

    UP-SQL-ERROR Section holt sich aus der SQLCA gewisse Informationen, schreibt diese in eine Protokolltabelle und mach dann einen GOBACK.

    Allerdings wäre es Wartungsfreundlicher, wenn das Programm nicht wie in diesem Falle fehlerfrei beendet werdeb würde, sondern das Programm mit einer Fehlermeldung abbricht.

    In der COBOL-Reference habe ich den STOP literal - Befehl gefunden. Leider hält dieser das Programm nur an und schreibt eine Message in die Nachrichtendatei *SYSOPR.

    Idealerweise wäre aber eine sofortige Beendigung des Programmes mit einer Fehlernachricht.

    Kenn jemand eine COBOL-Anweisung, mit der ich einen Abbruch des Programmes mit einer Fehlermeldung erreichen kann ?

    Auf dem Großrechner mußte vor dem GOBACK nur folgende Anweisung durchgeführt werden: MOVE 12 to RETURN-CODE

    Leider kennt das COBOL auf der i5 scheinbar keinen Return-Code, zumindest kann man diesen nicht explizit ansprechen.


    Vorab vielen Dank für eure Hilfe und allen noch einen schönen Feierabend.

    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Whenever an implicit or explicit STOP RUN occurs, the Languages and Utilities return code is set to 0. Otherwise, it is set to 2. The RETURN-CODE register is copied to the user portion of the work control block. See the RTVJOBA and DSPJOB commands in the
    CL Programming book for more information about return codes.

    M.a.W: Der Return-Code ist im CLP per RTVJOBA abfragbar.
    Ist der Aufrufer ein COBOL-Programm, kann dieses direkt auf den RETURN-CODE zugreifen.
    Es wird kein Fehler ausgelöst.

    QMHSNDPM ist nicht unbedingt eine Lösung, da eine ESC-Nachricht auch zu einer Nachricht führt, wenn sie nicht per MONMSG überwacht oder automatisch beantwortet wird.

    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

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... das ist doch genau das, was ich erreichen will: die aufrufende Funktion wird zu error handling gezwungen, sonst endet sie selber irregulär!
    D*B

    Zitat Zitat von Fuerchau Beitrag anzeigen
    [SIZE=2]
    QMHSNDPM ist nicht unbedingt eine Lösung, da eine ESC-Nachricht auch zu einer Nachricht führt, wenn sie nicht per MONMSG überwacht oder automatisch beantwortet wird.

    [/LEFT]
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Kontrollierter Abbruch in Cobol-Programm
    By wolfinho in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 12-12-07, 16:41
  2. Dekleration Cobol <-> RPG
    By Xanas in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 12-01-07, 07:32
  3. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  4. Cobol <> RPGLE
    By Xanas in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 13-12-06, 13:38
  5. Cobol
    By Uli Müller in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 09-11-06, 09:21

Berechtigungen

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