物理ファイルの作成方法

物理ファイルは、CRTPFコマンドによって作成できます。

AS400の物理ファイル(Physical File)は実際のデータを格納します。
(MySQLのテーブルと同じ扱いです。)
1つの物理ファイルに1つのレコード様式(Record Format)を持ちます。
(MySQLのテーブルも最初にテーブル定義をしますが、当然、1つのレコードの形式しか定義できません。
わざわざ「物理ファイルには1つのレコード様式を持つ」というのは、
「論理ファイルでは複数のレコード様式を持てる」からです。)

ファイル名はフィールド名には、桁数の制限があるため非常にわかりづらいです。
少しでも人間が理解しやすいようにローカルルールがあります。

ファイル名:8桁以内 →一般的に5文字がおおい?ファイル名の最後の文字を物理ファイルならP、論理ファイルならLにする
レコード様式名:8桁以内 →ファイル名の最後の文字をRにする
フィールド名:6桁以内 →(先頭2文字を作成する物理ファイルのprefixとする)

例)得意先マスタ
ファイル名:TOKMSP (TOKuisaki Master Physical file)
レコード様式名:TOKMSR(TOKuisaki Master Record format)
フィールド:
得意先番号   TKBANG 5 A
得意先名-カナ TKNAKN 20 A
得意先名-漢字 TKNAKJ 20 O

・・・のように無理やり6桁に収まるように設定します。
ただでさえ少ない6桁のうち、先頭2桁をprefixとして使っています。
RPG(Report Program Generator)では物理ファイルで定義したフィールド名をプログラム内に取り込み、変数として利用します。このとき、別の物理ファイルで同じフィールド名を利用していた場合、衝突してしまいます。オープン系のRDBのテーブルの場合は、論理的に同じ意味を持つフィールドは、別のテーブルでも同じ名前にするのが原則ですが、名前空間のないRPG上ではしません。別のファイルを読み込みをしたときに、プログラム上では別の変数として扱いたいことが多いからです。

・SEUを起動して入力
STRSEU SRCFILE(SAMPLIB/QDDSSRC) SRCMBR(TOKMSP)
tokmsp_dds

・コンパイル
CRTPF FILE(SAMPLIB/TOKMSP) SRCFILE(SAMPLIB/QDDSSRC) SIZE(*NOMAX)
通常は作成するファイル名とソースのメンバ名は同じなので、ソースメンバは省略します。
ファイルの初期レコード数は10,000です。サイズをNOMAXにします。

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

「ライブラリー SAMPLIBにファイル TOKMSP が作成された 。」とメッセージとともに物理ファイルが作成されました。

DDSを指定せずに RCDLEN およびFILETYPE(*DATA)を指定した場合には,フィールドが1つだけのレコード様式をもつ物理ファイルを作成できます。

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

シェアする

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

フォローする

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