LIKEREC(内部レコード名{:*ALL|*INPUT|*OUTPUT|*KEY|*NULL})

LIKEREC キーワードは、データ構造、データ構造サブフィールド、プロトタイプされた戻り値、またはプロトタイプ・パラメーターを、レコード と同様に定義するために使用します。 データ構造のサブフィールドは、レコードのフィールドと同じになります。 LIKEREC は、2 番目の任意指定パラメーターを使用できます。このパラメーターはレコードのどのフィールドをデータ構造に入れるかを指定します。 これには以下のものが含まれます。
  • *ALL 外部レコードのすべてのフィールドが抜き出されます。
  • *INPUT すべての入力可能フィールドが抜き出されます。 (これはデフォルトです。)
  • *OUTPUT すべての出力可能フィールドが抜き出されます。
  • *KEY キー・フィールドが、キーが DDS の K 指定に定義されている順番に抜き出されます。

変更の始まりファイル内のフィールドと同じデータ・タイプを持つサブフィールドを定義するのではなく、それらのサブフィールドがすべて標識であることを示すために、*NULL を指定することもできます。 データベース・ファイルの場合、これらの標識のレイアウトは、レコードのヌル・バイト・マップと同じです。変更の終わり

LIKEREC キーワードの使用時には、次の点を考慮する必要があります。
  • キーワード LIKEREC の最初のパラメーターはプログラム内のレコード名です。 レコード名の名前が変更された場合、これはレコードの内部名になります。
  • 変更の始まりLIKEREC の残りの抜き出しタイプパラメーターは、システム上のファイルの関連レコードの定義と一致しなければなりません。 *INPUT は、入力可能レコードおよび更新可能 レコードにのみ使用できます。*OUTPUT は、出力可能レコードにのみ使用できます。*ALL はどのレコード・タイプにも使用できます。 *KEY はキー付きファイルにのみ使用できます。 指定されない場合は、 このパラメーターのデフォルト値 *INPUT が使用されます。ただし、DISK ファイルからのレコード名に対して抜き出しタイプ・パラメーターが指定されず、出力バッファーのレイアウトが入力バッファーのレイアウトと完全に一致するときは、WRITE 命令でデータ構造を使用できます。変更の終わり
  • *NULL が指定されていない *INPUT および *OUTPUT の場合は、データ構造に含まれるサブフィールドは外部レコード記述内と同じ開始位置を占めます。
  • ファイルの接頭部が指定された場合、指定された接頭部はサブフィールドの名前に使用されます。
  • 変更の始まり*NULL が指定されると、標識はデータベース・ファイルの外部レコードのヌル・バイト・マップ内のヌル標識と同じ開始位置を占めます。 その他のタイプのファイルの場合は、標識サブフィールドの開始位置は順次に割り当てられます。変更の終わり
  • レコード内のフィールドが入力仕様において明示的に名前変更された場合でも、 内部名ではなく、外部名 (おそらく接頭部) が使用されます。
  • ALIAS キーワードを使用してファイルが定義されている場合、 別名が、データ構造のサブフィールドに使用されます。 外部記述ファイルに対する ALIAS キーワードの使用 に、ファイルが ALIAS キーワードを使用して定義され、 LIKEREC キーワードでデータ構造を定義した例が示されています。
  • LIKEREC を使用して定義されたデータ構造は、QUALIFIED データ構造です。 サブフィールドの名前は、DS1.SUBF1 という新しいデータ構造名によって修飾されます。
  • LIKEREC は、修飾されたデータ構造のサブフィールドに関してコーディングすることができます。 LIKEREC がデータ構造のサブフィールド定義でコーディングされる場合、 サブフィールドのデータ構造は自動的に QUALIFIED として定義されます。 LIKEREC サブフィールドのデータ構造のサブフィールドは、完全修飾形式 "ds.subf.subfa" で 参照されます。LIKEREC を使用して定義されたサブフィールドは、 それ自体がデータ構造であり、データ構造が必要な任意の場所で使用することができます。
  • 変更の始まり抜き出しタイプ *NULL で定義されたデータ構造を入出力操作と一緒に使用することはできません。変更の終わり