Re: Variazione DS descritta esternamente
Von: gio.cot@virgilio.it [Profil]
Datum: 11.04.2008 11:55
Message-ID: <d7feb706-5dd8-4261-b6af-9c5841d077ba@l42g2000hsc.googlegroups.com>
Newsgroup: it.comp.as400
Datum: 11.04.2008 11:55
Message-ID: <d7feb706-5dd8-4261-b6af-9c5841d077ba@l42g2000hsc.googlegroups.com>
Newsgroup: it.comp.as400
On 11 Apr, 10:14, "Dr.UgoGagliardelli" <do.not.spam.me.ple...@nettuno.it> wrote: > il 10/04/2008 14.48, Scrive gio....@virgilio.it 40405760:> Salve a tutti, ho una DS descritta esternamente, che utilizzo per > > passare i parametri al programma di reperimento prezzi del listino; > > esempio: > > > CodArt 15 > > TipLis 1 > > CodLis 3 > > DatVal 8,0 > > > poniamo che debba aggiungere un campo a tale DS, secondo voi devo > > ricompilare tutti i programmi che utilizzano questa DS ?? > > In assoluto no. > La DS viene valutata solo durante la compilazione, per cui il programma > RPG compilato con la DS piu' corta, in esecuzione ignorera' > semplicemente i campi nuovi, comportandosi quindi esattamente come > prima, banalmente perche' il parametro di input e' definisce un'area > piu' corta. In RPG i parametri sono sempre definiti BYREF quindi il > programma riceve il puntatore ad uno spazio dati di cui valuta solo il > *pezzo* che conosceva quando e' stato compilato. Ovviamente la cosa > cambia se il parametro di input viene passato piu' corto del previsto, > ma non e' il tuo caso. > Anche ricompilandolo, il programma che non e' a conoscenza del nuovo > campo non cambiera' il suo comportamento, non essendo a conoscenza del > campo nuovo, e' pero' possibile che la compilazione non finisca se il > nuovo campo era gia' definito nel programma, magari anche con attributi > diversi. Per cui, ricompilando tutti i programmi, nell'immediato > potrebbe essere controproducente, a lungo termine potrebbe rivelarsi una > buona scelta per il semplice motivo che in futuro ti ritroverai una > manutenzione già fatta. > > > > > Grazie in anticipo > > > P.S. sapete dove trovare una utility, che dato un file/ds, mi > > ricompila tutti i pgm che utilizzano tale file/ds ?? > > 25+F13 con il nome della DS nel campo ricerca e 14 nel campo opzione. > > -- > 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' prima di tutto grazie per le vs opinioni, volevo comunque sia aggiungere che io inizialmente ero convinto del fatto che non era necessario ricompilare tutti i pgm, però mi è successo che NON avendo ricompilato il programma chiamante, quando il chiamato restituiva la DS più lunga, mi sputt.....va i primi campi della DS successiva (non vi dico che casino mi è venuto fuori) e questo accadeva solo se il chiamato valorizzava il campo aggiunto nella DS. Come si spiegat questo ??!!![ Auf dieses Posting antworten ]
