difference between CHAIN and READE?
Answers were Sorted based on User's Feedback
Answer / sairam
Using Chain we can set the pointer to the particular record
according the criteria specified in the chain operation. But
in this case, if the record is found then the pointer will
be set, otherwise i.e., if the record does not exist then
the pointer will not set. This is the reason why we check
with the %Found keyword. And moreover after reading the
record (in case if the record found and there are more
number of records with the same keyword), we can not move
to the another record, which meets the same criteria
specified in the Chain operation. So the conclusion is we
can not read more number of records with the Chain
operation, if there are more number of records exist with
the same criteria in the file.
Where as using READE, we can read all the records which meet
the same criteria using subsequent READE operation. If there
are no records with the specified criteria then the pointer
will be set to EOF.
| Is This Answer Correct ? | 70 Yes | 5 No |
Answer / shikha
The CHAIN operation retrieves a record from a full
procedural file, sets a record identifying indicator on and
places the data from the record into the
input fields.If a file name is specified in name and access
is by key, the CHAIN operation retrieves the first record
that matches the search argument.
The READE operation retrieves the next sequential record
from a full procedural file if the key of the record
matches the search argument. If the key of the record does
not match the search argument, an EOF condition occurs, and
the record is not returned to
the program. If a READE operation is not successful, you
must reposition the file: for example,
using a CHAIN, SETGT, or SETLL operation.
| Is This Answer Correct ? | 8 Yes | 1 No |
Answer / remya
chain-This file operation is used to randomly retrieve a
record from a file.The factor 1 value is mandatory for chain
operation. The factor 1 value must be key field or RRN.Chain
operation=setll+reade. In the case of chain it will points
to a particular record, not store the value in the input
buffer.it will not read duplicate records.if the value not
found the "hi" indicator will turn on.
Reade-Reads equal records from a file when we use setll or
setgt.Reade operation alone will not work.In the case of
Setll+reade, the record will be pointed and store the value
in the input buffer.Then read equal records from a file
sequentially. it will read all the duplicate records. The
factor 1 value is not mandatory for reade,if used,the key
value must be in factor1.
| Is This Answer Correct ? | 8 Yes | 2 No |
Answer / mohan
reade--read the equal recd when u use setll or setgt
chain--used to get the rcd random sequenc
by using chain we can lock the recd and unlock the
rcd
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / chandu
simply say one word
chain = set the cursor give equal record
reade = set the cursor give duplicate records also
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / viney
chain is a combination of setll+read... dat is both pointer
is set on lower limit and then file is read.. dnt need 2
give different command 4 pointer set and read...
whereas reade will read d file sequentially at pointer set
2 value equal 2 reade.... in dis pointer can b set 2 a
specified/desired value but in chain by default pointer is
set at lower limit
| Is This Answer Correct ? | 3 Yes | 4 No |
Answer / vivek
Chain is used for random retrieval from a file basically
CHAIN=SETLL+READ
READE sequentially reads the next record in a full
procedural file if the key of that record matches the value
in factor 1 in read equal no pointer sets but in Chain
pointer sets on lower limit
| Is This Answer Correct ? | 7 Yes | 13 No |
How can a screen field that has changed since the last output operation be detected?
Hi all friend, Could Any body send me the code (with coding) of this senario because I have tried but I am stucking somewhere so Please reply ASAp with coding. senario:Q: I have to write the flat file(FLAT1) into the three different PFS (PF1,PF2 and PF3) with the respect of H line data, D line data and Z line data of flat file. where I have different data in flat file(FLAT1) which is mentioned below with data. H0929200909282009092820095529420003000073 D2222220006765555webservi001633.9909222009092820090924200951 8564380134049ROSNER TOYOTA OF FREDE FREDERICKSBURVA 224080000USA840840001633.99001633.99851856492689800208001915 511001633.990408490000000.0000000003446048 1,3 110793145 09070700351 372367 Rosner Motors D3333320006774444webservi000271.2409222009092820090924200951 8564380134049ROSNER TOYOTA OF FREDE FREDERICKSBURVA 224080000USA840840000271.24000271.24851856492689800208001835 511000271.240930680000000.0000000003450293 1 110793254 09072100079 373933 Rosner Motors Z0929200900000020001905.25 FLAT1 has the three pf data H line-represents the header pf data,D-Represent Details pf data,Z-Represents the trailer pf data Now I have to write H line data of flat file into Header pf (PF1),D line data of flat into datails pf(PF2) and Z line data of flat file into pf(PF3) with the spefic position(H,D and Z data of flat file into PF1, PF2 and PF3) of flat file.
can i use unique key in LF
how do I play {insert rpg system here}?
How can we override a file during runtime in rpg?
What is the purpose of PUTOVR keyword?
how to display all the members records in a physical file without using ovrdbf?
How can you delete records form a file in rpg without using "Delete" OPCODE?
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
Job is in MSGW while reading the input file and writing a new record / updating a reacod due to Duplicate data error. What action would you take ( C D I R )...?
Suppose i am having 3 programs PgmA,pgmB,pgmC and using source debugger. At debugging time i found that pgmC having some code error..then in debug mode directly how can i debug pgmC
1) How to define keyed file in CL pgm. 2) How can i read particular records in CL pgm from database file.