×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Ok.  Now, I'm confused.  My though was that if rolbk cause the file
pointer to set back one, I can just add only extra reade to get around
the problem.  The extra reade did make the program go on and read the
next record, however, the %eof is not being seton when it reach the eof?
That is strange.  Below if what I changed:

FMYFILE    UF   E           K DISK    commit   
                                               
C                   eval      MYFileKey = 'XXX'
C     MYFileKey     setll     MYFILE           
C     MYFilekey     reade(e)  MYFILE           
C                   dow       not %eof         
C                   if        'a' = 'b'        
c                   update    MYFILEfmt        
C                   endif                      
C                   rolbk                      
C     MYFileKey     reade(e)  MYFILE           
C     MYFileKey     reade(e)  MYFILE           
C                   enddo                      
                                               
C                   eval      *inlr = *on      


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Lim Hock-Chai
Sent: Thursday, February 23, 2006 1:26 PM
To: RPG programming on the AS400 / iSeries
Subject: rolbk causing reade to read the same record

I'm encountering a strange problem.  I'm seeing my reade reading the
same record when rolbk is executed.  Is this normal for rolbk to cause
this reade behavior?  
 
Below is a sample code and program will go into infinite loop (reade
reading the same record over and over again).
 
DDS for MYFILE:
  R MYFILEFMT       
    MYFILEKEY      3
    MYFILEDATA     3
  K MYFILEKEY       

 
Added the following two records to MYFILE and run the program below
XXX   AAA
XXX    BBB
 
 
RPG program:
FMYFILE    UF   E           K DISK    commit   
                                               
C                   eval      MYFileKey = 'XXX'
C     MYFileKey     setll     MYFILE           
C     MYFilekey     reade(e)  MYFILE           
C                   dow       not %eof         
C                   if        'a' = 'b'        
c                   update    MYFILEfmt        
C                   endif                      
C                   rolbk                      
C     MYFileKey     reade(e)  MYFILE           
C                   enddo                      
                                               
C                   eval      *inlr = *on      

 
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.