[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.114

    SQL Fehlerbehandlung in FreeRpg

    Hallo *all,

    ich habe jetzt mein FreeRPG Programm am Laufen.

    Das Programm wird im Batch ausgeführt.

    Ich würde jetzt gerne etwaige Fehler per sndmsg an den qsysopr senden.

    Ich habe mir mal das http://publib.boulder.ibm.com/infoce...zajp/rzajp.pdf
    angesehn, werde aber nicht ganz schlau daraus.

    Mein Prg sieht etwa so aus:

    /FREE
    EXEC Sql Set Option COMMIT=*NONE;
    EXEC SQL delete from aruba_msvc/MISpf300 where
    ORDB00 = 'ADKNA2';
    exec sql insert into aruba_msvc/mispf300
    select 'ADKNA2', adfa, '0', '0', '0', '0', '0', adkto,
    adknam
    from adr01pf
    where adabkz = 0;

    Wenn das Statement jetzt auf Fehler läuft, wie müßte dann das exception aussehen?

    Vermutlich ja etwas in der Form IF sqlcod > 0

    Hat evtl. jemand ein Codeschnipsel für mich.

    GG

  2. #2
    Registriert seit
    Jul 2011
    Beiträge
    31
    Hallo!

    Ich würde die Überprüfung auf die Variable "SQLSTT" empfehlen (z.B 02000 wäre im Falle von Delete -> The number of rows identified in the searched UPDATE or DELETE statement was zero.).

    http://publib.boulder.ibm.com/infoce...2Frzalaccl.htm
    Code:
    If SQLStt <> '00000';
      //Schreibe Fehlermeldung
    EndIf;
    Um nähere Informationen zu erhalten:

    Code:
     Exec SQL                                                
       Get Diagnostics Condition 1 :w_Text = MESSAGE_TEXT;
    In w_Text befinden sich dann Infos zum Fehler.

    Bitte beachte: Du solltest nach jeder SQL Anweisung auf SQLSTT überprüfen!

    LG,
    Sam

    Nachtrag:
    Zitat B. Hauser:
    Bei einem negativen SQLCOD oder einem SQLSTT bei dem die ersten beiden Stellen weder '00' noch '01' noch '02' sind liegt ein Fehler vor.
    Daher fragst du am besten auf die ersten 2 Stellen ab und wenn die ungleich 00, 01 & 02 sind -> Schreibe Fehlermeldung.
    Last edited by S.Neinawaie; 12-10-12 at 10:33. Grund: Bessere Lösung von B. Hauser hinzugefügt.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    SQLCODE reicht aus.
    Fehler ergeben einen negativen Wert.

    Die Anzahl Sätze erfährt man in SQLER3.
    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
    Aug 2006
    Beiträge
    2.114
    Das ich den SQLCOD prüfe war mir ja schon klar....
    Mich interessierte halt hier wie ich das sndmsg im FreeRPG hinbekomme.

    GG

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Je nach Jobdefinitionen reicht meist ein
    Code:
    /Free
     DSPLY 'Nachricht';
    /End-Free
    aus.
    Oder
    Code:
    /Free
     Dsply 'Nachricht' 'MYMSGQ';
    /End-Free
    Ansonsten kannst du auch den CMD absetzen

    Code:
    H BNDDIR('QC2LE')
    Dsystem           pr            10i 0 extproc('system')
    D cmd                             *   value options(*string)
    
     /Free
      system ('SNDMSG ...');
     /End-Free
    lg Andreas

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Man kann auch das API QMHSNDPM bemühen.
    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. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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