DFU, Query, SQL

66. RUNSQLでレコードを更新する

先にRUNSQLでファイルにレコードを追加できることを示したが
もちろんSQL文でレコードを更新することもできる。

例えば次のようなSQL文でレコードを更新することができる。

UPDATE QTRFIL/SHOHIN SET SHCODE=’NV-CF1′, SHNAME=’Cカセット編集ビデオ’, +
SHTANK=’16800′, SHSCOD=’0001′)


             DCL        VAR(&SQL) TYPE(*CHAR) LEN(256)            
              DCL        VAR(&QUOT) TYPE(*CHAR) LEN(1) VALUE(X'7D')
       :
              :
             CHGVAR      VAR(&SQL) VALUE('UPDATE QTRFIL/SHOHIN SET SHCODE=' *CAT +
                         &SHCODE *CAT &QUOT *CAT ', SHNAME=' *CAT &QUOT *CAT &SHNAME +
                         &QUOT *CAT ', SHTANK=' *CAT &QUOT *CAT &SHATNK *CAT +
                         ', SHSCOD=' *CAT &QUOT *CAT &SHSCOD *TCAT &QUOT)
             RUNSQL SQL(&SQL) COMMIT(*NONE) DSPLY(*NO)
              :

このように実質的にはわずか2行だけでレコードを更新することができる。
ちょっとしたデータ・ベースの管理プログラムをいちいちRPGやCOBOLを書いて
作っていたのでは面倒だしスマートではない。
このようなRUNSQLを使えばアッと言う間にレコードを追加するプログラムを
CLPだけで手軽に作ることができるのである。