概要
- 同一のテーブルをプログラムで使用する場合や、複数のテーブル内に、同一の変数名がある場合などで、ある共通のフィールド名がどのテーブルを参照しているかわからなくなってしまいます。
- このような場合、片方のフィールド名をプログラム実行時のみ、別の名前に置き換えてやる必要があります。そのためのコーディングテクニックをここで紹介したいと思います。
サンプル
方法1:全フィールドを入力仕様書(I領域)で定義する
- 2つのテーブル内に、同一の変数名がある場合に、必要に応じて使用します。
- TABLE2のフィールド「XX0001」が「I@0001」の名称で参照できます。
- デメリットは、TABLE2のスキーマ情報が変更になった場合、RPGソースも修正しなければならない可能があります。
F** テーブル1 (RECXX00)
FTABLE1 UF E K DISK
F** テーブル2 (RECXX01)
FTABLE2 UF E K DISK
F RENAME(RECXX00:RECXX01)
I** TABLE2 RENAME *********************************************
IRECXX01
I XX0001 I@0001
I XX0002 I@0002
I XX0003 I@0003
I XX0004 I@0004
I XX0005 I@0005
方法2:テーブル定義でPREFIXを使用する
- すべてのフィールド名が下記のコーディング例では「I@+フィールド名」になります。
- 例えば、TABLE2のフィールド「XX0001」が「I@XX0001」の名称で参照できます。
- 上記の方法と違って、キーワードの指定ひとつでフィールド名の一括読み替えが可能になります。
F** テーブル1 (RECXX00)
FTABLE1 UF E K DISK
F** テーブル2 (RECXX01)
FTABLE2 UF E K DISK
F RENAME(RECXX00:RECXX01)
F PREFIX(I@)