Discussione:
READPE e %EOF
(troppo vecchio per rispondere)
Giulia
2007-02-02 08:51:11 UTC
Permalink
Ciao a tutto il NG,
Vi pongo un quesito: posso usare %EOF con READPE? Mi dicono che non
funziona...
Ci sono dei nuovi programmi in azienda con questa istruzione e il
programmatore li sta modificando sostituendo la bif con l'indicatore
perchè in debug ha detto che non esce dal ciclo di lettura. Io non mi
ricordo di averlo mai usato, qualcuno ha informazioni in merito?
Grazie in anticipo
Giulia
Fabio Mascelloni (aka ilmasce)
2007-02-02 09:09:26 UTC
Permalink
Certo! Dal manuale RPGIV reference:

The operations that set %EOF are:
v "READ (Read a Record)" on page 728
v "READC (Read Next Changed Record)" on page 731
v "READE (Read Equal Key)" on page 733
v "READP (Read Prior Record)" on page 736
v "READPE (Read Prior Equal)" on page 738
v "WRITE (Create New Records)" on page 799 (subfile only).
Post by Giulia
Ciao a tutto il NG,
Vi pongo un quesito: posso usare %EOF con READPE? Mi dicono che non
funziona...
Fabio Mascelloni (aka ilmasce)
2007-02-02 09:17:48 UTC
Permalink
Non è che all'interno del ciclo viene in qualche modo risettata la
chiave?
Post by Giulia
Ciao a tutto il NG,
Ci sono dei nuovi programmi in azienda con questa istruzione e il
programmatore li sta modificando sostituendo la bif con l'indicatore
perchè in debug ha detto che non esce dal ciclo di lettura.
Dr.UgoGagliardelli
2007-02-02 09:25:55 UTC
Permalink
Post by Giulia
Ciao a tutto il NG,
Vi pongo un quesito: posso usare %EOF con READPE? Mi dicono che non
funziona...
Ci sono dei nuovi programmi in azienda con questa istruzione e il
programmatore li sta modificando sostituendo la bif con l'indicatore
perchè in debug ha detto che non esce dal ciclo di lettura. Io non mi
ricordo di averlo mai usato, qualcuno ha informazioni in merito?
Grazie in anticipo
Giulia
Certo che funziona. Ovvio che per accendersi %EOF devi usare l'estensore
(e), per esempio:
key readpe(e) record
dow Not %eof(file) and not %error
...
readpe(e)
enddo
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Fabio Mascelloni (aka ilmasce)
2007-02-02 09:39:31 UTC
Permalink
Ma è proprio necessario? Non mi sembra che nel reference lo ponga come
condizione perchè lo %eof si accenda. O almeno, io non l'ho mai usato.
L'estensore (e) non serve per le condizioni d'errore?

On 2 Feb, 10:25, "Dr.UgoGagliardelli"
Post by Dr.UgoGagliardelli
Certo che funziona. Ovvio che per accendersi %EOF devi usare l'estensore
Dr.UgoGagliardelli
2007-02-02 10:03:39 UTC
Permalink
Post by Fabio Mascelloni (aka ilmasce)
Ma è proprio necessario? Non mi sembra che nel reference lo ponga come
condizione perchè lo %eof si accenda. O almeno, io non l'ho mai usato.
L'estensore (e) non serve per le condizioni d'errore?
Hai ragione, e' necessario solo per gestire con il %error i file status
maggiori di 1000. Sono piu' di 10 anni che lo uso per default, piu' che
altro per evitare l'uso degli indicatori.
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
b***@gmail.com
2007-02-02 12:29:12 UTC
Permalink
Non vorrei direi una castroneria , ma in caso di readp/readpe non
bisogna testare il raggiungimento di inizio file ?
Secondo me dovresti usare %Bof
stefano[dot]tassi[at]gruppopro[dot]it
2007-02-02 12:31:16 UTC
Permalink
Post by b***@gmail.com
Non vorrei direi una castroneria , ma in caso di readp/readpe non
bisogna testare il raggiungimento di inizio file ?
Secondo me dovresti usare %Bof
che non esiste.
b***@gmail.com
2007-02-02 12:44:39 UTC
Permalink
Post by stefano[dot]tassi[at]gruppopro[dot]it
Post by b***@gmail.com
Non vorrei direi una castroneria , ma in caso di readp/readpe non
bisogna testare il raggiungimento di inizio file ?
Secondo me dovresti usare %Bof
che non esiste.
ecco lo avevo detto, ho bisogno di ferie.
Giulia
2007-02-02 12:51:56 UTC
Permalink
Post by Dr.UgoGagliardelli
Hai ragione, e' necessario solo per gestire con il %error i file status
maggiori di 1000. Sono piu' di 10 anni che lo uso per default, piu' che
altro per evitare l'uso degli indicatori.
Scusa, ma non capisco: il test su %error è quindi da fare sempre
quando si fa la READPE? Solo per la READPE o anche per le altre
letture READ?
Grazie ancora
Dr.UgoGagliardelli
2007-02-02 13:25:03 UTC
Permalink
Post by Giulia
Post by Dr.UgoGagliardelli
Hai ragione, e' necessario solo per gestire con il %error i file status
maggiori di 1000. Sono piu' di 10 anni che lo uso per default, piu' che
altro per evitare l'uso degli indicatori.
Scusa, ma non capisco: il test su %error è quindi da fare sempre
quando si fa la READPE? Solo per la READPE o anche per le altre
letture READ?
Grazie ancora
Non e' strettamente necessario, in genere io ce lo metto perche'
preferisco gestirmi a programma le condizioni di errore piuttosto che ci
pensi l'utente rispondendo a casaccio ad un messaggio di errore.
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Giulia
2007-02-02 13:32:06 UTC
Permalink
Post by Dr.UgoGagliardelli
Non e' strettamente necessario, in genere io ce lo metto perche'
preferisco gestirmi a programma le condizioni di errore piuttosto che ci
pensi l'utente rispondendo a casaccio ad un messaggio di errore.
Scusa l'ottusità (sicuramente non dovuta alla pizza-birra e venerdì
pomeriggio...), ma nel mio caso (READPE) è NECESSARIO il test %error o
no?
Perchè se non lo fosse vorrebbe dire che il debug fatto dal
programmatore non funziona per altri motivi (che andrei a quel punto a
controllare).
Ri-grazie
Giulia
Dr.UgoGagliardelli
2007-02-02 13:47:49 UTC
Permalink
Post by Giulia
Post by Dr.UgoGagliardelli
Non e' strettamente necessario, in genere io ce lo metto perche'
preferisco gestirmi a programma le condizioni di errore piuttosto che ci
pensi l'utente rispondendo a casaccio ad un messaggio di errore.
Scusa l'ottusità (sicuramente non dovuta alla pizza-birra e venerdì
pomeriggio...), ma nel mio caso (READPE) è NECESSARIO il test %error o
no?
Perchè se non lo fosse vorrebbe dire che il debug fatto dal
programmatore non funziona per altri motivi (che andrei a quel punto a
controllare).
Non e' mai strettamente necessario, o almeno no lo e' ai fini del debug.
Certo e' che se se c'e' un if %eof immediatamente dopo la readpe, e il
programma non entra nell'if vuol dire che %eof e' spento.
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Fabio Mascelloni (aka ilmasce)
2007-02-02 13:50:25 UTC
Permalink
%ERROR ti serve per testare eventuali errori: l'end of file non è un
errore, è una normale condizione di fine file e quindi usi %eof. Ora a
me non viene in mente che cosa invece potrebbe accendere %error...Ugo
ce lo dici tu? :)
Post by Giulia
Scusa l'ottusità (sicuramente non dovuta alla pizza-birra e venerdì
pomeriggio...), ma nel mio caso (READPE) è NECESSARIO il test %error o
no?
Dr.UgoGagliardelli
2007-02-02 14:09:14 UTC
Permalink
Post by Fabio Mascelloni (aka ilmasce)
%ERROR ti serve per testare eventuali errori: l'end of file non è un
errore, è una normale condizione di fine file e quindi usi %eof. Ora a
me non viene in mente che cosa invece potrebbe accendere %error...Ugo
ce lo dici tu? :)
Uno di quelli listati nella tabella "File Status Code" presente nel
capitolo "File and Program Exception/Errors" dell' "RPG Reference".
Non sono moltissimi forse una decina o poco piu'. Il piu' comune e'
senz'altro un lock che non va a buon fine, ma potrebbe essere l'effetto
di un trigger o di un referential constraint. Oppure il famigerato 1299.

if %error and %status=1299
exsr PANIC
endif
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Giulia
2007-02-02 14:13:32 UTC
Permalink
On 2 Feb, 15:09, "Dr.UgoGagliardelli"
il 02/02/2007 14.50, Scrive Fabio Mascelloni (aka ilmasce) 36820680:> %ERROR ti serve per testare eventuali errori: l'end of file non è un
Post by Fabio Mascelloni (aka ilmasce)
errore, è una normale condizione di fine file e quindi usi %eof. Ora a
me non viene in mente che cosa invece potrebbe accendere %error...Ugo
ce lo dici tu? :)
Uno di quelli listati nella tabella "File Status Code" presente nel
capitolo "File and Program Exception/Errors" dell' "RPG Reference".
Non sono moltissimi forse una decina o poco piu'. Il piu' comune e'
senz'altro un lock che non va a buon fine, ma potrebbe essere l'effetto
di un trigger o di un referential constraint. Oppure il famigerato 1299.
if %error and %status=1299
exsr PANIC
endif
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Grazie 1000 a tutti! Controllerò.
...Però mi hai fatto venire una curiosità: che è l'1299?
Dr.UgoGagliardelli
2007-02-02 15:08:53 UTC
Permalink
Post by Giulia
Grazie 1000 a tutti! Controllerò.
...Però mi hai fatto venire una curiosità: che è l'1299?
Disk IO Error
--
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherAñejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers vão à merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'
Giulia
2007-02-05 12:28:01 UTC
Permalink
On 2 Feb, 16:08, "Dr.UgoGagliardelli"
il 02/02/2007 15.13, Scrive Giulia 36820680:> Grazie 1000 a tutti! Controllerò.
Post by Giulia
...Però mi hai fatto venire una curiosità: che è l'1299?
Disk IO Error
Ok...Grazie!

Fabio Mascelloni (aka ilmasce)
2007-02-02 14:13:15 UTC
Permalink
Che ne so, potrebbe essere che in un campo numerico del record letto
c'è un valore decimale non corretto ---> %error
Quindi utilizzare contemporaneamente %eof e %error serve a due cose:
capire quando arrivi a fine file (%eof) e evitare che in caso di
errore (%error) il programma 'scoppi'; aggiungendo %error eviti che il
programma ti mandi un messaggio CPF o qualcosa del genere a video, ma
ovviamente devi gestire l'errore a programma, altrimenti con %error
l'errore è 'silenzioso' e non ti accorgi di nulla.

On 2 Feb, 14:50, "Fabio Mascelloni (aka ilmasce)"
<***@hotmail.com> wrote:
Ora a
Post by Fabio Mascelloni (aka ilmasce)
me non viene in mente che cosa invece potrebbe accendere %error
Loading...