Alan is correct. It's not complicated.
readp myfile ;
if %EOF(myfile) ;
setll *start myfile ;
endif ;
Brian May
IBM i Modernization Specialist
Profound Logic Software, Inc.
http://www.profoundlogic.com
937-439-7925 Phone
877-224-7768 Toll Free
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Alan Shore
Sent: Friday, March 02, 2012 10:14 AM
To: RPG programming on the IBM i / System i
Subject: RE: Re-READ the current record
When an EOF condition is met due to a readp, then all you need to do is setll and read to get the first record with a lock
Alan Shore
Programmer/Analyst, Direct Response
E:AShore@xxxxxxxx
P:(631) 200-5019
C:(631) 880-8640
"If you're going through Hell, keep going" - Winston Churchill
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Hockchai Lim
Sent: Friday, March 02, 2012 11:06 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: Re-READ the current record
==> "The only way you could get EOF on readp is if you were already on the first record of the file. In that case, it wouldn't matter."
Why won't it matter? if readp encountered EOF (top of the file), the cursor is lost. The READE will fail.
"Brian May" wrote in message
news:mailman.568.1330704015.14575.rpg400-l@xxxxxxxxxxxx...
No, I said readp not readpe. readp is not keyed so it just moves up to the record above the current. The only way you could get EOF on readp is if you were already on the first record of the file. In that case, it wouldn't matter.
Brian May
IBM i Modernization Specialist
Profound Logic Software, Inc.
http://www.profoundlogic.com
937-439-7925 Phone
877-224-7768 Toll Free
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Hockchai Lim
Sent: Friday, March 02, 2012 9:53 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: Re-READ the current record
yes, that is what I'm afraid of and that is what I come up with. It is quite ugly. It gets even uglier because I'll also have to consider readp(n) could encounter %eof condition. From what I know, when %eof is encountered, the cursor is lost. So, I'll have to position it to the top of the file and do a reade. what in the world...
"Brian May" wrote in message
news:mailman.562.1330703018.14575.rpg400-l@xxxxxxxxxxxx...
you will have to do a readp(n) to move the cursor up one, and then reade.
Brian May
IBM i Modernization Specialist
Profound Logic Software, Inc.
http://www.profoundlogic.com
937-439-7925 Phone
877-224-7768 Toll Free
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Lim Hock-Chai
Sent: Friday, March 02, 2012 9:36 AM
To: 'rpg400-l@xxxxxxxxxxxx'
Subject: Re: Re-READ the current record
two problems with this:
1) reade is usually performed in a loop and I need the record to know if I need to perform the update.
2) setll/chain won't work if the file that it is looping thru does not have a unique key.
"Khalid Hachi" wrote in message
news:mailman.553.1330702034.14575.rpg400-l@xxxxxxxxxxxx...
Setll (mykey1) MYFILE;
If %Equal(MYFILE) and needUpdated();
//Read with Lock
reade (mykey1) MYFILE;
Endif;
-----Message d'origine-----
De : rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] De la part de Hockchai Lim Envoyé : 2 mars 2012 10:13 À : rpg400-l@xxxxxxxxxxxx Objet : Re-READ the current record
Is there a way to re-READ the current record (without using CHAIN) that the RPG program has just READ?
For example:
reade(n) (mykey1) MYFILE; //read it with no lock
if not %eof() and needUpdated();
==> Need to re-read with locked how???
endif;
--
This is the RPG programming on the IBM i / System i (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.
--
This is the RPG programming on the IBM i / System i (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.
-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.1913 / Virus Database: 2114/4846 - Release Date: 03/02/12
--
This is the RPG programming on the IBM i / System i (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.
-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.1913 / Virus Database: 2114/4846 - Release Date: 03/02/12
--
This is the RPG programming on the IBM i / System i (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.
RENONCIATION: CE MESSAGE CONTIENT DES INFORMATIONS CONFIDENTIELLES ET EST DESTINE SEULEMENT A/AUX L'INDIVIDU(S) NOMME(S). SI VOUS N'ETES PAS LE DESTINATAIRE, VOUS NE DEVRIEZ PAS DIFFUSER, DISTRIBUER OU REPRODUIRE CE COURRIEL. S'IL VOUS PLAIT, AVISER IMMEDIATEMENT L'EXPEDITEUR PAR COURRIEL SI VOUS AVEZ REÇU CE COURRIEL PAR ERREUR ET SUPPRIMEZ CE DERNIER DE VOTRE SYSTEME. ON NE PEUT PAS GARANTIR LA TRANSMISSION SECURISEE OU SANS ERREUR DE COURRIELS ETANT DONNE QUE LES INFORMATIONS POURRAIENT ETRE INTERCEPTEES, CORROMPUES, PERDUES, DETRUITES, TARDIVES OU INCOMPLETES OU CONTENIR DES VIRUS. EN CONSEQUENCE, L'EXPEDITEUR N'ACCEPTE PAS LA RESPONSABILITE POUR LES ERREURS OU OMISSIONS DANS LE CONTENU DE CE MESSAGE QUI SURGISSENT SUITE A LA TRANSMISSION DE CE COURRIEL. SI UNE VERIFICATION EST REQUISE, BIEN VOULOIR DEMANDER UNE COPIE PAPIER. TOUTES OPINIONS OU AVIS PRESENTES SONT SEULEMENT CEUX DE L'AUTEUR ET NE REPRESENTENT PAS NECESSAIREMENT CEUX DE L'ENTREPRISE.
As an Amazon Associate we earn from qualifying purchases.