Everyone already said you should use %EOF. Which you should be cause you
really care about the whether the READPE was successful not the SETGT.
The other part of why %FOUND works for lower values , but not for the last
record is that SETGT will set the %FOUND value, but it won't recognize
setting the pointer outside of your file storage which you tried to do.
When you enter a lower order number it finds a place to set the pointer
and turns on the %FOUND indicator.
From:
"Elbert Cook" <elbert@xxxxxxxxxxxxxxx>
To:
"'RPG programming on the IBM i / System i'" <rpg400-l@xxxxxxxxxxxx>
Date:
01/25/2011 12:23 PM
Subject:
Help with SETGT
Sent by:
rpg400-l-bounces@xxxxxxxxxxxx
I guess I need help with SETGT
I have a physical file keyed unique by order number.
I do the following.
Order# = 561329; // 561329 is the highest value, and also the
physically
last record in the file
SETGT Order# MyFile;
READPE Order# MyFile;
If %found(MyFile);
I don't get a Hit, %found evaluates to false.
Any other value give a Hit. But I don't get a Hit using the highest value
(also being the last physical record) in the file?
Is this the correct behavior for SETGT?
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.