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

    Wald und Bäume

    Hallo *all,
    irgendwie sehe ich den Wald vor lauter Bäumen nicht mehr.

    Habe mir eine LF mit Schlüssel erstellt
    Code:
    0010.00  *              K SOID1  
    0010.01  *              K SOID4  
    0010.02  *              K SODNVO
    In Cobol habe ich die wie folgt definiert:

    Code:
    51  012600 FD  DAT004                                                      
    52  012700     DATA RECORD IS 004-SATZ,                                    
    53  012800     LABEL RECORDS IS STANDARD.                                  
    54  012900 01  004-SATZ.                                                   
    55  013000     COPY DDR-ALL-FORMATS OF DAT004.                             
    56 +000001       05  DAT004-RECORD PIC X(73).                              
       +000002*    I-O FORMAT:DAT004SATZ FROM FILE DAT004     OF LIBRARY RPTRA 
       +000003*                  SONDERPREIS                                   
       +000004*DEFINITIONEN DER SCHLÜSSELFELDER FÜR SATZFORMAT DAT004SATZ      
       +000005*  NUMMER               NAME               VERARB.FOLGE  ART     
       +000006*   0001   SOID1                          AUFSTEIGEND   SIGNED   
       +000007*   0002   SOID4                          AUFSTEIGEND   SIGNED   
       +000008*   0003   SODNVO                         AUFSTEIGEND   SIGNED   
    57 +000009       05  DAT004SATZ    REDEFINES DAT004-RECORD.


    Und mach dann ein (Ich benutze ein Unter-Modul für die Abfragen, und L-Satz ist aus der Linkage Section und ist auch sauber gefüllt)
    Code:
    364  061200        MOVE L-SATZ TO 004-SATZ.                       
    365  061300        START DAT004 KEY                               
         061400              NOT LESS THAN EXTERNALLY-DESCRIBED-KEY   
    366  061500        GO TO QUIT.
    Der Datei-Status ist danach Null.
    Und ein
    Code:
         042100  RN-004.                                 
    289  042200     READ DAT004 NEXT.                    
    290  042300     MOVE 004-SATZ TO L-SATZ. GO TO QUIT.
    Ich erhalte aber einen x-beliebigen Satz nicht aber den, den ich haben wollte.
    Versteh ich jetzt einfach nicht, wo ist mein Denkfehler?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wo ist 004-Satz definiert?
    Ich sehe in der FD nur DAT004SATZ.
    Dieser ist vor dem Start zu füllen!
    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 2006
    Beiträge
    2.077
    Versteht sich, habe oben nochmal den Anfang der Copy Strecke reinkopiert.

    Die Felder sind ja auch gefüllt.

    GG

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Ist der START in einem separaten Programm?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    COBOL (bzw. native IO) ist da manchmal nickelig.
    Von der Kodierung gehört sich:

    Start ...
    invalid Key ...
    end-start

    read ... next
    at end ...
    end-read

    Dies führt intern ggf. zu anderen Funktionsaufrufen (warum auch immer).
    Meist deutet der Compiler dies mit 10/20er-Fehlern an.

    Auch verwende ich meist
    Start ... Key is >= ext.....

    Logisch ist das zwar identisch mit "not <" aber ggf. wird hier ein "Aufsetzen mit" erst erzwungen.
    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

  6. #6
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Tja, es geht doch nichts über Agent Orange.
    Ich hasse es wenn Pappnasen die Felder mit id1 bis idx bezeichnen und dort ab und zu mal Artikelnummer oder Kundennummer unterbringen.
    Solche Leute gehören echt von der AS/400 überfahren....

    Sprich die Syntax war in Ordnung, nur bei Tiedenhub 3,5 und Schneefall steht halt in den Felder mal das eine oder das andere.

    GG

Berechtigungen

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