|
"Smith, Mike" wrote:
> I have a program that is doing a user controlled open and close of a file,
> overriding to a specific member in the file.
> I want to be able to use the rrn(397-400I) of the infds. However when I
> override and try to do a setll I seem to get erroneous information.
> I have tried z-add the value to another variable and using this, but still i
> get bad results.
>
> So, First question is. Can i use the Relative record number in the INFDS on
> a multimember file.
> Second can i do this on a file that is being opened in the program.
> third. what is wrong.
> any help is greatly appreciated.
>
> here is a code snippet.
>
> FORDERLIST IP E K DISK
> FPIFORDER IF E DISK USROPN
> F INFDS(INFDS)
> FPIFORDERS O E DISK USROPN
> F PREFIX(N)
> F RENAME(PIDTA00R:PIREC)
>
> D INFDS DS
> D DB_RRN 397 400I 0
> *
> *
> DQCmdExc PR EXTPGM('QCMDEXC')
> * Execute a command.
> D PR_CmdStr 4096A CONST OPTIONS(*VARSIZE)
> D PR_CmdStrLen 15P 5 CONST
>
>
> C IF NOT %OPEN(PIFORDER)
>
> C EVAL CMDSTR = 'OVRDBF PIFORDER MBR('
> C EVAL CMDSTR = %TRIM(CMDSTR) +
> C %TRIM(MLNAME) + ')'
> *
> C CALLP QCmdExc(CmdStr:
> C %LEN(%TRIMR(CmdStr)))
> C OPEN PIFORDER
> C ENDIF
> C EXSR $PROCESS
>
>
> C $PROCESS BEGSR
> C EXSR $OPNPIREC
> * START AT THE BEGGINING OF THE FILE OR WHEREEVER IT LEFT OFF.
> C Z-ADD DB_RRN #RECHOLD
> C #RECHOLD SETLL PIFORDER
> C DOU %EOF(PIFORDER)
> C READ PIFORDER
> C IF NOT %EOF(PIFORDER)
> C IF %SUBST(PIFLD:1:5) <> '@FILE'
Mike,
That subfield in the INFDS only supplies the RRN after a READ action, so at
opening it is *ZERO.
Secondly, why not define the field PIFORDERS as UPDATE with ADD? Perhaps, this
is
causing your problems.
Regards,
Carel Teijgeler.
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.