× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Igor,

CHAIN <> SETLL + READE as far as BIFs are concerned.  There are plenty of 
discussions in the archives about the differences.

Make sure you are using %EOF(KEYEDFILE) instead of just %EOF().

>From the manual:
The following operations, if successful, set %EOF(filename) off. If the 
operation is not successful, %EOF(filename) is not changed. %EOF with no 
parameter is not changed by these operations. 
v "CHAIN (Random Retrieval from a File)" on page 573 
v "OPEN (Open File for Processing)" on page 694 
v "SETGT (Set Greater Than)" on page 738 
v "SETLL (Set Lower Limit)" on page 742




Charles Wilt
--
iSeries Systems Administrator / Developer
Mitsubishi Electric Automotive America
ph: 513-573-4343
fax: 513-398-1121
 

> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx 
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of 
> Igor.Beslic@xxxxxxxxxxxx
> Sent: Thursday, August 18, 2005 10:17 AM
> To: rpg400-l@xxxxxxxxxxxx
> Subject: How to properly use %EOF() bif?
> 
> 
> Hello!
> 
> Recently I've stucked with problem i resolved but still I'm 
> asking for 
> explanation. HOW %EOF() bif works? I read that resulting inds 
> are set off 
> before performing operations which affect them so I believed 
> that file 
> status BIFs (%FOUND, %EOF, %EQUAL..) work similary.
> 
> 
> I had program that read keys from array and for every key 
> chained to file 
> and read all records with current key. LOOP A describes simplified 
> process. 
> 
> LOOP A
> 
> 01 FOR COUNT=1 TO %Elem(keyARRAY);
> 02 key4file=keyARRAY(COUNT);
> 03 chain key4file KEYEDFILE;
> 04 if %Found();
> 05   dow NOT %Eof();
> 06      register();
> 07      reade key4file KEYEDFILE;
> 08   ENDDO; 
> 09  endIf;
> 10 endFor;
> 
> The problem is that loop was good just for the first 
> iteration. On second 
> iteration, when program successfuly chained to new record 
> with new key, 
> %EOF() bif in line 05 returned result that refered to last 
> READE operation 
> but not CHAIN. I used this approach because I thought that 
> CHAIN is some 
> combination of SETLL+READ but obviosly I was wrong.
> 
> I altered LOOP with SETLL and READ operations as in LOOP B 
> example and now 
> program process all records with keys in keyARRAY:
> LOOP B
> 
> 01 FOR COUNT=1 TO %Elem(keyARRAY);
> 02  key4file=keyARRAY(COUNT);
> 03  setll key4file KEYEDFILE;
> 04  if %Equal();
> 05    read KEYEDFILE;
> 06    dow NOT %Eof();
> 07         register();
> 08         reade key4file KEYEDFILE;
> 09    ENDDO;
> 10  endif;
> 11 endFor;
> 
> Now I'm asking is it restricted to perform only read{E,P} operations 
> before using %EOF or %BOF built in functions??
> 
> Best regards,
> Igor Bešlić, dipl. ing. rač. 
> VOLKSBANK d.d.
> OJ Informatika
> Zelinska 2, 10000 Zagreb
> tel: +385 1 6326422
> -- 
> 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 On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.