物理ファイルのレイアウトを変更するときはどのように
しているのだろうか?
1.DDSソースを変更する
2.物理ファイルのバックアップをとる
3.物理ファイルに従属している論理ファイルを調べて(DSPDBR)削除する
4.変更元の物理ファイルを削除する
5.新しい物理ファイルをCRTPFで作成する
6.バックアップから新しい物理ファイルへCPYF *MAP *DROPでコピーする
7.従属する論理ファイルを再作成する(CRTLF)
…と、このような手順が必要であったのだが
いつのまにかIBMが CHGPF というコマンドを作成した。
このCHGPFコマンドは
・新しいDDSソースに基づいて物理ファイルを再作成する。
・元のデータがそのまま維持される。
・従属する論理ファイルも維持される。
というスグレモノである。
それでは早速 CHGPF を試してみよう。
[変更前の物理ファイル : WORKP ]
0001.00 A********************************************** 0002.00 A* WORKP : 商品マスターファイル * 0003.00 A********************************************** 0004.00 A UNIQUE 0005.00 A R WORKPR TEXT(' 商品マスターレコード ') 0006.00 A* 0007.00 A SHCODE 10A COLHDG(' 商品 コード') 0008.00 A SHNAME 24O COLHDG(' 商品名 ') 0009.00 A SHTANK 7S 0 COLHDG(' 単価 ') 0010.00 A EDTCDE(1) 0011.00 A SHSCOD 4A COLHDG(' 品種 コード') 0012.00 A* 0013.00 A K SHCODE
[従属する論理ファイル]
0001.00 A********************************************** 0002.00 A* WORKL01 : 商品マスターファイル LF * 0003.00 A********************************************** 0004.00 A 0005.00 A R WORKPR PFILE(R610FIL/WORKP) 0006.00 A* 0007.00 A K SHSCOD 0008.00 A K SHCODE
[変更前の物理ファイル : WORKPの内容]
報告書の表示 行の位置指定 . . . . . . . 行 ....+....1....+....2....+....3....+....4....+....5....+.... 商品 コード 商品名 単価 品種 コード 000001 NV-BS30S 目次ビデオ 165,000 0002 000002 NV-BS50S ビデオ画王 200,000 0002 000003 NV-CF1 Cカセット編集ビデオ 58,000 0002 000004 NV-CF2 薄型テレビ 98,000 0003 000005 NV-CF81 更新テスト 58,000 0004 000006 NV-CF9 漢字テスト 19,000 0002 000007 NV-F850 音声録画ビデオ 140,000 0002 000008 NV-HK1 歌えるビデオ 90,000 0002 000009 NV-H1T-S みんなのビデオ 69,800 0002 000010 NV-SX10 ビデオ画王 115,000 0002 000011 NV-W1 世界放送方式ビデオ 350,000 0002 000012 RX-AZ1 液晶テレビ 80 インチ 300,000 0001 000013 RX-BZ1 液晶テレビ 55 インチ 100,000 0002 000014 RX-DT75 CDラジオカセット 53,800 0003 000015 SC-CH150 超ミニ・コンポ 70,000 0003 000016 SC-CH505 パーソナル・ミニコンポ 100,000 0003 000017 SC-CH655 ロングプレイ・コンポ 129,000 0003 000018 SC-CH950 ドルビー・ミニコンポ 162,000 0003 000019 SF-SDCD FFFFF 19,000 0009 000020 TH-19VS30 コンパクトTVBS19 120,000 0001 000021 TH-21VS30 コンパクトTVBS21 128,000 0001 000022 TH-25GF10 衛星放送内蔵TV25 168,000 0001 000023 TH-25GV10 ビデオ内蔵型TV25 255,000 0001 000024 TH-25VS30 コンパクトTVBS25 11,300 0001 000025 TH-29GF10 カラーTV画王BS29 220,000 0001 000026 TH-29GV10 ビデオ内蔵型TV29 280,000 0001 000027 TH-33VS35 カラーTV画王BS33 350,000 0001
[変更後の物理ファイルソース]
0001.00 A********************************************** 0002.00 A* WORKP : 商品マスターファイル * 0003.00 A********************************************** 0004.00 A UNIQUE 0005.00 A R WORKPR TEXT(' 商品マスターレコード ') 0006.00 A* 0007.00 A SHCODE 10A COLHDG(' 商品コード ') 0008.00 A SHNAME 24O COLHDG(' 商品名 ') 0009.00 A SHTANK 7S 0 COLHDG(' 単価 ') 0010.00 A EDTCDE(1) 0011.00 A SHZAIKO 7P 0 COLHDG(' 在庫数 ') 0012.00 A SHSCOD 4A COLHDG(' 品種コード ') 0013.00 A* 0014.00 A K SHCODE
[解説]
欄見出しを半角カナを全角カナに変更して
0011.00 A SHZAIKO 7P 0 COLHDG(' 在庫数 ')
を追加した。
[ CHGPFによる物理ファイルの変更 ]
> CHGPF FILE(R610FIL/WORKP) SRCFILE(R610SRC/QDDSSRC) ライブラリー R610FIL のファイル WORKP が変更された。
[変更後の物理ファイル WORKP ]
報告書の表示 行の位置指定 . . . . . . . 行 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+ 商品コード 商品名 単価 在庫数 品種コード 000001 NV-BS30S 目次ビデオ 165,000 0 0002 000002 NV-BS50S ビデオ画王 200,000 0 0002 000003 NV-CF1 Cカセット編集ビデオ 58,000 0 0002 000004 NV-CF2 薄型テレビ 98,000 0 0003 000005 NV-CF81 更新テスト 58,000 0 0004 000006 NV-CF9 漢字テスト 19,000 0 0002 000007 NV-F850 音声録画ビデオ 140,000 0 0002 000008 NV-HK1 歌えるビデオ 90,000 0 0002 000009 NV-H1T-S みんなのビデオ 69,800 0 0002 000010 NV-SX10 ビデオ画王 115,000 0 0002 000011 NV-W1 世界放送方式ビデオ 350,000 0 0002 000012 RX-AZ1 液晶テレビ 80 インチ 300,000 0 0001 000013 RX-BZ1 液晶テレビ 55 インチ 100,000 0 0002 000014 RX-DT75 CDラジオカセット 53,800 0 0003 000015 SC-CH150 超ミニ・コンポ 70,000 0 0003 000016 SC-CH505 パーソナル・ミニコンポ 100,000 0 0003 000017 SC-CH655 ロングプレイ・コンポ 129,000 0 0003 000018 SC-CH950 ドルビー・ミニコンポ 162,000 0 0003 000019 SF-SDCD FFFFF 19,000 0 0009 000020 TH-19VS30 コンパクトTVBS19 120,000 0 0001 000021 TH-21VS30 コンパクトTVBS21 128,000 0 0001 000022 TH-25GF10 衛星放送内蔵TV25 168,000 0 0001 000023 TH-25GV10 ビデオ内蔵型TV25 255,000 0 0001 000024 TH-25VS30 コンパクトTVBS25 11,300 0 0001 000025 TH-29GF10 カラーTV画王BS29 220,000 0 0001 000026 TH-29GV10 ビデオ内蔵型TV29 280,000 0 0001 000027 TH-33VS35 カラーTV画王BS33 350,000 0 0001
[解説]
欄見出しは「商品コード」のように全角カナ表記に変更された。
フィールド : 在庫数 7P 0 も追加されて PACK-0 で初期設定されている。
データ・ベースの変更は避ける人が多いが CHGPF を使えば安全にレイアウトを
変更することができる。
非常に役に立つテクニックとしてぜひ覚えていた欲しい。
ただし関連するプログラムの再コンパイルも忘れないようにやっておくこと。