Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Forum Index
 
Register
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Updating table's keyfield using panel

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> TSO/ISPF
View previous topic :: :: View next topic  
Author Message
rameyshkanthan v

New User


Joined: 15 Nov 2013
Posts: 10
Location: India

PostPosted: Fri Nov 22, 2013 4:49 pm    Post subject: Updating table's keyfield using panel
Reply with quote

Hi All,

I am new to ISPF/REXX.

I wrote a program to insert,modify,delete a table row thru panel.
All functionality are working fine but when I try to update a key field of my table,the updated one is getting inserted as a new row. I used TBMOD function for this.

Here is my code , Tablename : TSTABL1 Key: Keyfld Namefield: name1 name2 name3
Code:

'TBOPEN 'TSTABL1''                                                     
cursor = 0                                                           
do forever                                                             
  option = ' '                                                       
   'TBTOP 'TSTABL1''                                                 
   'TBSKIP 'TSTABL1' NUMBER('cursor')'                           
   'TBDISPL 'TSTABL1' PANEL(RANE001)'                             
   if RC  = 8 then leave                                         
   var = ZTDSELS                                                 
   if var > 0 then do                                             
     do o = 1 to var                                             
       'CONTROL DISPLAY SAVE'                                     
          call tab_handle                                         
       'CONTROL DISPLAY RESTORE'                                       
       if ZTDSELS = 1 then nop                                         
       else 'TBDISPL 'TSTABL1''                                     
     end                                                               
   end                                                               
end                                                                   
'TBCLOSE 'TSTABL1''                                                     
exit                                                                 
                                                                       
/*-----------------------BEGIN PROCEDURES-----------------------------*/
tab_handle:                                                           
  select                                                               
    when option = 'I' then do                                         
      'ADDPOP'                                                         
      'DISPLAY PANEL(RANE002)'                                         
      if RC = 0 then 'TBADD 'TSTABL1''                                 
      'REMPOP'                                                         
    end                                                                 
    when option = 'D' then do                                           
      'ADDPOP'                                                         
      'DISPLAY PANEL(RANE003)'                                         
      if DELOK = 'Y' then 'TBDELETE 'TSTABL1''                         
      'REMPOP'                                                         
       DELOK = 'N'                                                     
    end                                                               
    when option = 'M' then do                                           
      'ADDPOP'                                                         
      'DISPLAY PANEL(RANE004)'                                         
      if RC = 0 then 'TBMOD 'TSTABL1''                                 
      'REMPOP'                                                       
    end                                                                 
    otherwise nop                                                       
  end                                                                   
return       


Please clarify whether it can be done.

CODE tags added
Back to top
View user's profile Send private message

expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8784
Location: Welsh Wales

PostPosted: Fri Nov 22, 2013 5:23 pm    Post subject:
Reply with quote

Not sure if I remember correctly, but you may have to delete the old record and insert the new record if you are updating a key variable.

also, please learn very quickly to use the code tags - shown below

Code:
[code]
your code goes here
[/code]
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1789
Location: Bloomington, IL

PostPosted: Fri Nov 22, 2013 5:35 pm    Post subject:
Reply with quote

TBMOD, IMNSHO, is a dangerous thing to use, as there are too many assumptions made so that it will never fail; it's better to use TBPUT, check the return code, and then use TBDELETE/TBADD if necessary.
Back to top
View user's profile Send private message
daveporcelan

Active Member


Joined: 01 Dec 2006
Posts: 726
Location: Pennsylvania

PostPosted: Fri Nov 22, 2013 6:21 pm    Post subject:
Reply with quote

You can not 'update' the key fields.

If you want to let the user think that is what is being done, then fine.

You will need to keep track of the old key, then do a TBDELETE/TBADD as stated above.

I however do not allow the KEY fields to be updatable on the screen.

I make the user do the Add/Delete so that they understand the Database better.

There is an alternative. You can TBCREATE the table with out any key fields.

This way you can use a TBPUT which behaves like this (from the manual):
Quote:
For tables without keys, the row pointed to by the CRP is always updated.
Back to top
View user's profile Send private message
rameyshkanthan v

New User


Joined: 15 Nov 2013
Posts: 10
Location: India

PostPosted: Fri Nov 22, 2013 6:35 pm    Post subject: Reply to: Updating table's keyfield using panel
Reply with quote

Thanks all.

I will go with daveporeclan view,"I however do not allow the KEY fields to be updatable on the screen.

I make the user do the Add/Delete so that they understand the Database better."


icon_biggrin.gif
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> TSO/ISPF All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts LOAD JCL for db2 table, taking too lo... Somnath Giri DB2 2 Mon Oct 14, 2019 3:35 pm
No new posts Adding FIND to ISPF Panel display of ... Harold Barnes TSO/ISPF 3 Mon Oct 07, 2019 5:46 pm
No new posts Not seeing the error panel )ATTR Harold Barnes TSO/ISPF 4 Fri Sep 20, 2019 10:56 am
No new posts Query to Truncate value in table bhaskar_kanteti DB2 2 Mon Aug 12, 2019 3:26 pm
No new posts RACF RANGE TABLE Martin Wickenden All Other Mainframe Topics 1 Mon Jul 08, 2019 9:06 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us