DFU, Query, SQL

65. RUNSQLだけでレコードを追加する

i5/OS Ver7.1以上であればコマンド: RUNSQLが追加されている。
もし Ver 7.1以下であってもこのサイトのToolsにも RUNSQLコマンドが提供されている。

RUNSQLを使うとプログラムを書かなくてもファィルにレコードを追加することができる。

ファイル QTRFIL/SHOHIN に対してレコードを追加するには次のようなSQL文を
書けばよい。

INSERT INTO QTRFIL/SHOHIN (SHCODE, SHNAME, SHTANK, SHSCOD)
VALUES(‘NV-CF1’, ‘Cカセット編集ビデオ’, ‘16800’, ‘0001’)

このようなSQL文をRUNSQLに渡せばよい。
例えばCLPでは

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

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