データ構造

ILE RPG コンパイラーによって、記憶域の区域およびその区域内 のサブフィールドと呼ばれるフィールドのレイアウトを定義する ことができます。記憶域のこの区域は、データ構造と呼ばれます。

変更の始まり 自由形式でデータ構造を定義するには、 DCL-DS 命令コードの後にデータ構造名とキーワードを指定します。 固定形式でデータ構造を定義するには、定義仕様書の 24 から 25 桁目に DS を 指定します。 変更の終わり

データ構造は次の目的で使用することができます。
さらに、次の 4 つの特殊なデータ構造があり、それぞれが 特定の目的を持っています。

データ構造は、プログラム記述または外部記述とすることができます。 ただし、標識データ構造は プログラム記述のみです。

あるデータ構造を、LIKEDS キーワードを使用して別のデータ構造と同じように定義することができます。

プログラム記述データ構造は、自由形式定義では EXT または EXTNAME キーワード がないことによって識別され、固定形式定義では 22 桁目のブランクによって識別されます。プログラム記述データ構造のサブフィールド定義は、データ構造定義の直後に続 いていなければなりません。

変更の始まり 外部記述データ構造 (自由形式定義 では EXT キーワードまたは EXTNAME キーワードによって識別され、 固定形式定義では 22 桁目の E によって識別される) のサブフィールド記述は外部記述ファイル に入っています。コンパイル時に、ILE RPG コンパイラーは、外部名を使用してデータ構造サブ フィールドの外部記述を見付けて、それを抜き出します。EXTNAME キーワード が指定されていない場合、外部ファイル名にはデータ構造の名前が使用されます。 変更の終わり

注: 外部記述にサブフィールドについて指定されたデータ形式は、コンパイラーによ ってそのサブフィールドの内部形式として使用されます。 これは、外部記述ファイルの取り扱われ方と異なっています。

外部サブフィールドの名前は、キーワード EXTFLD を使用してプログラム中で変 更することができます。 キーワード PREFIX を使用して、EXTFLD によって名前が変更されていない外部サ ブフィールド名に接頭部を追加することができます。 ファイル名が、外部ファイル名を使用したデータ構造の定義時に EXTNAME キーワ ードに指定されたパラメーターと同じであっても、データ構造サブフィールドは 、ファイル仕様書に指定された PREFIX キーワードの影響を受けないことに注 意してください。 追加のサブフィールドは、外部サブフィールドのリストの直後にプログラム記述 サブフィールドを指定することによって、外部記述データ構造に追加することが できます。

変更の始まり 外部記述データ構造は LIKEREC キーワードを使用して定義することもできます。 変更の終わり

変更の始まり データ構造に CCSID(*EXACT) または CCSID(*NOEXACT) キーワードを指定することによって、 外部記述データ構造の英数字サブフィールドの CCSID を制御できます。 CCSID(*EXACT) を指定すると、英数字サブフィールドの CCSID はファイル内のフィールド と同じ CCSID になります。 CCSID(*NOEXACT) を指定するか、または、データ構造に対して CCSID キーワードを指定しない 場合、英数字サブフィールドの CCSID は、英数字定義のデフォルト CCSID になります。 英数字 CCSID について詳しくは、CCSID(*EXACT | *NOEXACT) および CCSID(*CHAR : *JOBRUN | *UTF8 | *HEX | 番号) を 参照してください。 変更の終わり