Patric,
Use PLIST to allow multiple keys to be used on file IO
Set up a PLIST with all the keys you need to position the file
Use a different PLIST with only the keys required for the READE or READPE
You can set the individual key fields used in the PLIST to *HIVAL or
*LOVAL or specific values as required.
Cheers
Don
From: "Patrik Schindler" <poc@xxxxxxxxxx>
To: "RPG programming on IBM i" <rpg400-l@xxxxxxxxxxxxxxxxxx>
Date: 05/03/2020 02:45 AM
Subject: Re: READE EOF Handling/Repositioning
Sent by: "RPG400-L" <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx>
Hello Nick,
Am 04.03.2020 um 17:09 schrieb Nick <nicola.brion@xxxxxxxxxxxx>:
Wait. If you need to read from a *Specific* point inside the key, you
have to use 2 keys, one for setgt and one for the readp (or a single key
specifiying number of filed to use). If you just need to read all record
that have that key, just use a single one.
A 'classic' example with orders row:
Setgt (OrdNum) OrdRow
Readpe (OrdNum) OrdRow
will read all order's row for the given order, while:
Setgt (OrdNum:100) OrdRow
Readpe (OrdNum) OrdRow
will read from highest row less or equal 100, and then down to lower
one.
I don't think that works with V4R5 RPG, since there's no "free" and I
can't remember to have additional arguments for SETGT allowed. Yes, really
classic. :-)
Aside, the goal is after READE sets EOF, I want to to a SETGT on the last
record, so I can properly READPE backwards. READ(P)E should be done with
just one key field to only pick out the needed records, and set BOF/EOF
when this subset of records is exhausted. But for repositioning at EOF, I
need *HIVAL for a second order key. SETLL with just the first order key
already places me at BOF (for the given record set).
Niels brought me on the right track. :-)
:wq! PoC
PGP-Key: DDD3 4ABF 6413 38DE -
https://www.pocnet.net/poc-key.asc
As an Amazon Associate we earn from qualifying purchases.