DFU, Query, SQL

67. RUNSQLでレコードを削除する

RUNSQLでレコードの追加、変更ができることを示したので
当然、レコードを削除することもできる。

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

DELETE FREOM QTRFIL/SHOHIN WHERE SHCODE=’NV-CF1′


             DCL        VAR(&SQL) TYPE(*CHAR) LEN(256)            
              DCL        VAR(&QUOT) TYPE(*CHAR) LEN(1) VALUE(X'7D')
       :
              :
             CHGVAR      VAR(&SQL) VALUE('DELETE FROM QTRFIL/SHOHIN WHERE SHCODE=' *CAT +
                         &SHCODE *CAT &QUOT)
             RUNSQL SQL(&SQL) COMMIT(*NONE) DSPLY(*NO)
              :

削除の場合はすべてのフィールドを指定する必要はない。
キー部分を指定すれば十分である。

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

見てきたようにRUNSQLを使えばスマートにCLPだけでレコードを保守することができる。
対話式SQLが導入されていないIBM iであってもRUNSQLおよびSQLは使うことができる。
対話式SQLというのはSQLの練習用のツールであって実際のSQL文の実行とは無関係である。
SQLを適用業務に大いに活用して頂きたい。