物理ファイルのデータ更新方法

物理ファイルへのデータの登録方法の続きで、登録済みのレコードを更新する方法です。

データベースファイルのレコード(データ)を更新する方法としては次の方法があります。

  1. RPGなどで作成したユーザープログラムを利用する。
  2. DFU(Data File Utility)で作成したプログラムを利用する。

登録の時に利用したCPYFコマンドは、更新時には使えません。
CPYFコマンドはレコードの置き換え、または登録のみです。

1.RPGなどで作成したユーザープログラムを利用する。

画面で対話的に更新する方法と、バッチ処理で更新する方法があります。
今回は画面は無しでバッチ処理でデータを更新します。

・SEUを起動して入力
STRSEU SRCFILE(SAMPLIB/QRPGSRC) SRCMBR(TESTUPDP)
tokmsp_upd

・コンパイル
CRTRPGPGM PGM(SAMPLIB/TESTUPDP) SRCFILE(SAMPLIB/QRPGSRC)

コンパイル結果は6ページありました。当然、内容によってページ数は変わります。
1ページ目・・・コンパイルしたオプション
2、3ページ目・・・展開後のソース 

tokmsp_upd_compile

F仕様書で指定した外部記述ファイルのフィールドがI仕様書とO仕様書に展開されました。

4ページ目・・・相互参照表(ファイルおよびレコード、フィールド、標識)
5ページ目・・・メッセージの要約
6ページ目・・・最終的な要約

・実行
ライブラリを確認して実行します
CALL SAMPLIB/TESTUPDP

・データの確認
RUNQRY () SAMPLIB/TOKMSP

2.DFU(Data File Utility)で作成したプログラムを利用する。

DFUというユーテリティープログラムを作成して、CHGDTA(Change Data)コマンドで対話式にデータの更新を行えます。
自分でDFUプログラムを作成しなくても、一時的なDFUプログラムを自動で生成し、更新処理が行える機能もあります。
UPDDTA(Update Data with Temp Program)コマンドを使います。

UPDDTA SAMPLIB/TOKMSP

表示された一時プログラムで、データを検索または、PgUP、PgDnキーで対象のレコードを表示し
更新したい値を入力し、実行キーで確定します。
確定した瞬間にテーブルの内容は変わりますので注意する必要があります。
通常はUPDDTAのログ(スプールファイルQPDZDTALOG)が出力されます。

※データの登録は F10です。
※データの削除は F23(Shift + F11)です。

スポンサーリンク
memordmレクタングル(大)
memordmレクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
memordmレクタングル(大)