How I can reread the physical file in CL program once the
end of file reached in same CL program.
Answers were Sorted based on User's Feedback
Answer / jim
Specify two DCLF for the same file with 2 different
openID's sayID1 and ID2
Tjen do RCVF on the file with open ID ID1 do the
processing, upon EOF then issue a 2nd RCVF for open ID2
the 1st record will be available.
Here's an example
DCLF FILE(FILE1) OPNID(ID1)
DCLF FILE(FILE2) OPNID(ID2)
RCVF: RCVF RCDFMT(FILE1) OPNID(ID1)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(XYZ))
GOTO RCVF
XYZ:
RCVF RCDFMT(FILE2) OPNID(ID2)
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(END))
GOTO XYZ
END:
ENDPGM
Is This Answer Correct ? | 26 Yes | 8 No |
Answer / abhishek bajpai
hi Shobhit,
POSDBF and OVRDBF can only position the file at the desired
location if the file hasn't reached EOF yet. If the file is
already at EOF, then thesekeywords won't help you in
positioning the cursor.
However, there is one keyword recently added to the CL
commands and that is 'CLOSE'. After the file is at EOF
mark, you can close it by using this keyword and the next
RCVF keyword will retrieve the first record again, or u can
position the cursor anywhere using POSDBF or OVRDBF.
Thanks
Is This Answer Correct ? | 15 Yes | 5 No |
Answer / shobhit
Have you tried this option..
This option will not work as once the end of file reached
in CL program can not be reseted at beginning.
The Only way is come out of the cl program and call it
again.
Is This Answer Correct ? | 14 Yes | 6 No |
Answer 11 is correct when the version of your iSeries is V6 and above. For V5R* , I guess CLOSE key word is not there.
For V5R4 systems... you can approach below solution.
Declare the same file two times with different OPENIDs
Before first RCVF , do OPNDBF and read the file. After reaching EOF do CLOF
Then do OPNDBF for second OPNID and do the same again.
Is This Answer Correct ? | 2 Yes | 1 No |
WE can't read the file again once you reached end of file.
If you want to use the POSDBF command before reaching the
end of file you make to position to starting.Use RTVMBRD, we
get the number of records in the file.Count the number of
records retrieved.When the count becomes equal to number of
records in PF..use POSDBF and make the cursor position to
intial record
Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sravs
simply call that progrm by using IF condition based on
increment value of one varibale it will again read from
first
Is This Answer Correct ? | 1 Yes | 1 No |
Answer / arvind
Read file thru a pgm and then call d same program and u can read d file.
i try it refine me if m wrong
Is This Answer Correct ? | 0 Yes | 0 No |
Answer / naga srinivas.kattula
Ovrdbf file name with share
rtvmbrd to get the number of recoeds of file
Pos: Posdbf with positon *first
RCVf file name
count the loops
If no of records of file is equal to no of loops
goto POS
enddo
count+
Is This Answer Correct ? | 0 Yes | 0 No |
during execution, an rpg/400 program automatically follows a sequence of operations for each record that is processed. The built-in program cycle includes the following logical steps.
How do you do indexing in a physical file?
Interviewer asked me write down DDS for load all subfile .can anybody write dds
How do I link an existing logical file to it's Physical File without recompiling?
what happens when sflsiz = sflpag? What are the advantages and disadvantages?
Mr.Yallamanda Reddy P thanks for your answer sir,can we use test(D) opcode in RPG/400,if yes please help me by eloborating on that answer by writing a sample code for that sir
1.How to read a subfile in out put mode? 2.what are the keywords used to share same file? 3.using composite key which rpg code used?
A particular job executing on the iS is not behaving as expected and is operating in an environment in which it can be debugged. What commands would you use to debug and observe the program?
without logical file we cannot access the data in physical file.but we specify physical file in the program(ie:- Ffile IF E k disk).how can it be accessed?
I have 1000 records in a file. I would like to generate 10 identical reports from this record with same format (structure of records) how do I do this?
If there are 1000 member(PGM type) in a SRC file. How can we compile in a CL program? ( It need to be done in a loop)?
where we give the MSGSFL in rpg400?