[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2007
    Beiträge
    4

    Question Letzten Satz aus Datei lesen

    Hallo zusammen,
    ich soll aus einem Table den "letzten" Satz, sprich den Satz mit der höchsten Adressnummer auslesen. Diese Adressnummer soll bei Neuanlage einer Adresse um eins erhöht werden.
    Kann mir jemand sagen, wo der Fehler in PrcMaxAdrNr liegt?


    Table
    Code:
    0002.00 CREATE TABLE YYPERR                                                     
    0003.00                                                                         
    0004.00               (PERMANDA    CHAR (05) WITH DEFAULT ' ' ,                 
    0005.00                PERFIRMA    CHAR (03) WITH DEFAULT ' ' ,                 
    0006.00                PERADRNR    NUMERIC (4 , 0) WITH DEFAULT 0 ,             
    0007.00                PERANRED    CHAR (04) WITH DEFAULT ' ' ,                 
    0008.00                PERTITEL    CHAR (20) WITH DEFAULT ' ' ,                 
    0009.00                PERVNAME    CHAR (20) WITH DEFAULT ' ' ,                 
    0010.00                PERNNAME    CHAR (20) WITH DEFAULT ' ' ,                 
    0011.00                PERSTRAS    CHAR (36) WITH DEFAULT ' ' ,                 
    0012.00                PERPLZ      CHAR (20) WITH DEFAULT ' ' ,                 
    0013.00                PERORT      CHAR (20) WITH DEFAULT ' ' ,                 
    0014.00                PERLAND     CHAR (20) WITH DEFAULT ' ' ,                 
    0015.00                PERTEL      CHAR (20) WITH DEFAULT ' ' ,                 
    0016.00                PERFAX      CHAR (20) WITH DEFAULT ' ' ,                 
    0017.00                PERMOBIL    CHAR (20) WITH DEFAULT ' ' ,                 
    0018.00                PERMAIL     CHAR (36) WITH DEFAULT ' ' ,                 
    0019.00                PERLOEKZ    CHAR (1)  WITH DEFAULT ' ' ,                 
    0020.00                PERAENKZ    CHAR (1)  WITH DEFAULT ' ' ,                 
    0021.00                PERUSER     CHAR (10)  WITH DEFAULT ' ' ,                
    0022.00                PERPROGR    CHAR (10)  WITH DEFAULT ' ' ,                
    0023.00                                                                         
    0024.00                PRIMARY KEY (PERMANDA, PERADRNR)       );
    RPG-Prog
    Code:
    0074.01  *-----Hoechste vorhandene Adressnummer ermitteln                       
    0074.02 d PrcMaxAdrNr     PR             4  0                                   
    0074.03                                                                         
    
    
    0149.00 d GDsUeb          DS                                                    
    0150.00 d  GAnManda                      5A                                     
    0151.00 d  GAnLoeKz                      1A                                     
    0152.00 d  GNuAdrNr                      4  0                                   
    0153.00 d  GAnNName                     20A                                     
    0154.00 d  GAnOrt                       20A                                     
    0155.00 d  GAnTel                       20A                                     
    0160.00 c     KeyYyPerp     KList                                               
    0161.00 c                   KFld                    ExManda                     
    0162.00 c                   KFld                    GNuAdrNr                    
    0163.00                                                                         
    0164.00 c                   move      *date         Gsysdat                     
    
    
    0172.01  *     Adressnummer bei Neuanlage festlegen:                            
    0172.02 c                   callp     PrcMaxAdrNr                               
    0173.00 c                   eval      GNuAdrNr = PrcMaxAdrNr 
    
    
    0709.00  *------------------------------------------------------------------    
    0710.00  *   PrcMaxAdrNr                                                        
    0711.00  *------------------------------------------------------------------    
    0712.00 p PrcMaxAdrNr     B                                                     
    0713.00 d PrcMaxAdrNr     PI             4  0                                   
    0714.00                                                                         
    0715.00 d LNuAdrNr        s              4s 0 inz(2)                            
    0718.00                                                                         
    0719.00 c     KeyYyPerp     KList                                               
    0720.00 c                   KFld                    ExManda                     
    0721.00 c                   KFld                    GNuAdrNr                    
    0727.00                                                                         
    0730.00 c                   eval      GNuAdrNr = *HIVAL                         
    0730.01 c                                                                       
    0731.00 c     KeyYyPerp     setgt     YyPerp                                    
    0732.00 c     KeyYyPerp     readpe(n) YyPerp                                    
    0732.03 c                                                                       
    0733.00 c                   if        %eof(YyPerp)                              
    0734.00 c                   eval      GNuAdrNr = *zero                          
    0735.00 c                   else                                                
    0736.00 c                   eval      GNuAdrNr = PerAdrNr + 1                   
    0737.00 c                   endif                                               
    0737.01 c                                                                        
    0737.02 c***    Wert für Adressnummer zuweisen  ***         
    0737.03 c                   eval      LNuAdrNr = GNuAdrNr                        
    0737.04                                                                        
    0737.05 c***    Testwert für Adressnummer    ***
    0737.06 c*                  eval      LNuAdrNr = 111                          
    0737.07                                                                       
    0741.00 c                   return    LNuAdrNr                                
    0742.00                                                                       
    0743.00 p PrcMaxAdrNr     E
    MfG Dw4rf79

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    ich würde beim Rückwärtslesen nur einen Teilschlüssel (EXMANDA) verwenden.

    PHP-Code:
    0719.00 c     KeyYyPerp     KList                                               
    0720.00 c                   KFld                    ExManda                     
    0721.00 c                   KFld                    GNuAdrNr                    
    0727.00                                                                         
    0730.00 c                   
    eval      GNuAdrNr = *HIVAL                         
    0730.01 c                                                                       
    0731.00 c     KeyYyPerp     setgt     YyPerp                                    
    0732.00 c     ExManda       readpe
    (nYyPerp 
    Birgitta
    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

  3. #3
    Registriert seit
    Aug 2007
    Beiträge
    4
    Danke für die schnelle Antwort. Mit nur einem Teilschlüssel hat die Prozedur auch direkt gemacht, was sie sollte

    MfG Dw4rf79

Similar Threads

  1. Wert aus CSV Datei
    By mk in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 21-12-06, 08:56
  2. kein Konstantes Ergebnis bei CRTDUPOBJ und Datei m.RI
    By deni87991 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 19-10-06, 13:55
  3. Excel Datei mit RPG und POI/HSSF in A4
    By haertl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 30-05-06, 13:36
  4. Datei aus IFS holen
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 15-05-06, 13:47
  5. IFS Datei berechtigungen
    By PGMR in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 15-06-05, 15:37

Berechtigungen

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