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 | 9 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 |
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 ? | 1 Yes | 0 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 |
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 |
what was the robotech rpg?
Hello, I want to extend a length of field in my Display file(Subfile). Please suggest the possible steps. Thanks
How to update selected fields from pf without using update opcode. How to read all member in Rpg-3,without using any cl command?
give an eg of ACQ-(ACQUIRE),BIT OFF,BIT ON,DEALLOC,DUMP,FEOD,FORCE,MHHZO,MHLZO,MHLLZO,MLHZO,REL,RESET,TESTZ,TESTB,TESTN----GIVE SMALL EXAMPLE TO THE OPCODES...TO UNDERSTAND FUNCTIONING...........
Assume 2 users are using the same file and first user updates some record in the file. Will the 2nd user will be able to see the updated record or not?
3 members in databasefile .how to read records from all the members??
A pgm subroutine calling child subroutine, that child subroutine again calling parent subroutine, u have 1000 lines of code, with out debugging , how can u find that error??? Is there any command to find errors in pgm???
i want code and what are used key words are ...like wrkmbrpdm screen (q) i have a file with 3 fields empno,empname,empaddr... here you give the empno it displays from that number to remaining empno's how? sub file screen: employee details pos to:empno then enter empno empname empaddr so file have 100 records from 1 to 100 so the above pos you give the 55 empno...it displays the from 55 to remaining... ...... please share this answel
what are the key words you must use when using a subfile?
In a particular program one file is used where override command is applied to a file, now this program calls another program where we want to use the same file but without override.How it can be done?
what do you mean by SESSION/DEVOCE ERROR?
This is my Physical file 'EMPS' existing in library "TAMIL1" and its record format is 'EMPRCD" a)its source is R EMPRCD ENO 4 0 ENAME 10 EADD 10 b)The records present in EMPS are as follows ENO ENAME EADD 0001 tamil coimbatore 0002 kumar bangalore 0003 sunder bangalore 0004 arunkumar chennai 0005 pandi hyderabad 0006 santhosh hyderabad 0007 sasi salem 0008 kalai chennai 0009 suresh hyderabad 0010 vijay bangalore 0011 Arul chennai 0012 velu chennai 0013 khan bangalore 0014 praba chennai 0015 praba.p coimbatore 0016 anand ooty 0017 raja erode 0018 sankar erode 0019 vadivel namakkal 0020 anbu chennai 0021 Ajith mumabi c)now i want to select the 'ENAME' field records starting with 'S' for that i have created a RPG program its source code is PGM DCLF FILE(TAMIL1/EMPS) DCL VAR(&MYENO) TYPE(*CHAR) LEN(4) OVRDBF FILE(EMPS) SHARE(*YES) OPNQRYF FILE((TAMIL1/EMPS)) QRYSLT('ENAME *EQ %WLDCRD("S *")') READ: RCVF RCDFMT(EMPRCD) MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(END)) CHGVAR VAR(&MYENO) VALUE(&ENO) SNDUSRMSG MSG(&MYENO) SNDUSRMSG MSG(&ENAME) SNDUSRMSG MSG(&EADD) GOTO READ END: CLOF OPNID(EMPS) DLTOVR FILE(EMPS) ENDPGM Is this coding correct sir,the program gets compiled,and if i call it it says query running but records are not displayed.please help me out