IBM MAINFRAME HELP & SUPPORT FORUMS
Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
 

How to update a particular record

THIS IS AN ARCHIVE FORUM: CLICK HERE TO GO TO THE ORIGINAL TOPIC

 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CLIST & REXX
View previous topic :: View next topic  
Author Message
Prabha



Joined: 05 Dec 2005
Posts: 64

Posted: Wed Dec 07, 2005 4:03 pm    Post subject: How to update a particular record  

Hi,

I have an input file with some set of records like,

A/C no CUSTNAME ADDRESS1 ADDRESS2
--------- ------------- ------------- -------------
12937487 GUPTA AAAAAAAA BBBBBBBB
83737366 JOHN CCCCCCC DDDDDDD
23345556 JUDE EEEEEEEEE GGGGGGG

Here i want to update the third record JUDE. Kindly Provide me with example of code for this.
Back to top  
Prabha



Joined: 05 Dec 2005
Posts: 64

Posted: Thu Dec 08, 2005 11:00 am    Post subject: Re: How to update a particular record  

I hav one more clarification. In yr code

"EXECIO 1 DISKRU IN 3"

You have given updated line number as 3. Suppose 10000 records, in that case I dont know abt the line number of that record to be updated. How to specify the line number in such situation.
Back to top  
Ravi gaur



Joined: 12 Jul 2005
Posts: 44

Posted: Thu Dec 08, 2005 5:15 pm    Post subject: Re: How to update a particular record  

use this code :- but remember i m parsing input data using position Please change the position(1,9,10 etc etc) if you get any problem please let me know the position for the input data.
Code:
 /* REXX  */                                               
 "ALLOC DA('SF0619.TEST3') FILE(INP) SHR"                 
 "ALLOC DA('SF0619.TEST5') FILE(OUT) SHR"                 
 "EXECIO * DISKR INP (STEM INP. FINIS"                     
 J=0                                                       
 DO I=1 TO INP.0                                           
 PARSE VAR INP.I 1 VAR1 9 10 VAR2  18 19 VAR3 35 .         
 J=J+1                                                     
     IF LEFT(VAR2,4)='JUDE' THEN                           
        DO                                                 
          VAR2=RAVI                                       
          VAR.J=' 'VAR1||' 'VAR2||' 'VAR3                 
        END                                               
     ELSE                                                 
          VAR.J=' 'VAR1||' 'VAR2||' 'VAR3                 
 END                                                       
 "EXECIO * DISKW OUT (STEM VAR."                           
 "FREE F(INP OUT)"                                         
DROP VAR.
Back to top  
Prabha



Joined: 05 Dec 2005
Posts: 64

Posted: Fri Dec 09, 2005 11:32 am    Post subject: Re: How to update a particular record  

Your code is doing updated fields in another output file. But i need to update in same file itself.

Thanks a lot for yr code.
Back to top  
MichaelKBS



Joined: 10 Jan 2006
Posts: 21
Location: Germany

Posted: Tue Jan 10, 2006 6:27 pm    Post subject:  

Try the following method:


do forever

"execio" 1 "diskru filename"

/* ask for End-Of-File */
if rc = 2 then do
leave
end

parse pull record
field1 = subword(record,1,1)
if field1 = 'AAAAAAA' then do
field1 = 'BBBBBBB'
record = field1!!subword(record,2)
queue record
"execio 1 diskw filename"
end

end


Regards,

Michael
Back to top  
 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CLIST & REXX
Page 1 of 1
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM