[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Unregistriert Besucher/Guest
    n'Abend Haertl,

    Zitat Zitat von haertl
    0131.00 C*** *IN93 DOUEQ '1'
    0132.00 C*** *IN03 OREQ '1' F3
    0133.00 C*** *IN12 OREQ '1' F12
    0134.00 /FREE
    0135.00 DOU %EOF OR *IN03;
    0136.00 READC SUBF;
    0137.00 /END-FREE
    0138.00 C*** READC SUBF 9393 ERR/EOF
    0139.00 /FREE
    0140.00 IF NOT %EOF;
    0141.00 /END-FREE
    0142.00 C*** *IN93 IFEQ '0'
    0143.00 C*** EXSR DATVER DATEI VERARB
    0144.00 C*** ENDIF
    0145.00 C*** ENDDO
    0146.00 /FREE
    0147.00 EXSR DATVER;
    0148.00 ENDIF;
    0149.00 ENDDO;
    0150.00 Hallo Birgitta, wenn ich im fixed Format codiere (siehe C***) dann funktioniert es.
    Wenn ich die free Format Befehle (siehe oben) nutze, bekomme ich bei leerem Subfile einen Einheitenfehler, weil der READC SUBF trotz EOF keine '1' setzt. IF NOT %EOF wird dann ausgeführt obwohl End of File zutrifft. Enthält das Subfile Datensätze dann funktioniert es auch in free Format. Noch eine Idee ?

    %eof kann mit readc benutzt werden. ich glaube, dass es nicht mit %eof(bsname) funktioniert, aber nur %eof tun's!
    der codeschnipsel lässt befürchten, dass du zuviel funktionalität in die schleife gepackt hast. es wundert mich nicht, wenn das programm nicht so, wie gewünscht funktioniert (sorry, aber *in03 in der schleife lässt mich schlimmes ahnen!).

    mein ansatz:

    wenn subfile gefüllt (sfldsp = *on)!!!
    machwas = *ON

    dow machwas

    readc subformat
    if %eof
    leave
    endif
    jetzt kannst du gefahrlos alles machen

    enddo

    die funktionen %eof, %error, %found, ... liefern (wenn nicht spezifiziert) den Wert der letzten %eof-fähigen, usw. operation! das wird wohl iregendwo im DATVER passieren.

    %error in deiner ergänzung fängt nur den fehler leere subdatei ab und hat nur deshalb mit readc etwas zu tun.



    Bogomil

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wenn du auf eine leere Subfile einen READC löst, wird NIE %eof ausgelöst sondern immer %error, das gilt auch beim konventionellen READC mit Bezugszahlen. Hier ist es sogar so, dass eine RPG-Fehlermeldung ausgegeben wird, wenn die 2. Bezugszahl beim READC nicht angegeben ist.
    Besser ist es aber tatsächlich immer, sich zu merken ob die Subfile Daten enthält. Mögliche Fehler sollte man VORHER abfragen und nicht erst eintreten lassen.

    Ich könnte ja schließlich auch eine Null-Division mit Monitor abfangen anstatt vorher den Divisor abzufragen.
    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
    Aug 2001
    Beiträge
    2.928

    Chain

    Es gibt übrigens auch einen Abbruch (schon in RPGIII!) wenn man mit einem CHAIN versucht den 1. Satz aus einer leeren Subfile einzulesen.
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. Cursor in Subfile - Cobol
    By Anette in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 24-07-06, 20:52
  2. KEYED DATA QUEUES SUBFILE DESCEND RPGLE
    By borwegen in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 30-06-06, 09:04
  3. subfile erste seite
    By steven_r in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 30-05-06, 08:40
  4. Subfile Drop
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 22-05-06, 13:56
  5. Subfile aus einer Subfile?
    By Toschie in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 08-06-05, 14:21

Berechtigungen

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