Record RecordA type SerialRecord { fileName = "myFile" } record_type char(1); item1 char(20); end Record RecordB type BasicRecord 10 record_type char(1); 10 item2 bigint; 10 item3 decimal(7); 10 item4 char(8); end Program ProgramX type basicProgram myRecordA RecordA; myRecordB RecordB {redefines = "myRecordA"}; function main(); get myRecordA; while (myRecordA not endOfFile) if (myRecordA.record_type == "A") myFunction01(myRecordA.item1); else myFunction02(myRecordB.item2, myRecordB.item3, myRecordB.item4); end get myRecordA; end end end
あるレコードを他のレコードの再定義として宣言するには、redefines プロパティーを使用します。 このプロパティーは、他のレコードを識別するストリングを受け入れます。このプロパティーは、 レコード宣言でのみ使用することができます。 レコード・パーツ定義では使用できません。
オーバーレイ・レコードには、オリジナルのレコードに含まれている情報 (構造を除く) は含まれません。 例えば、索引付レコードでシリアル・レコードを再定義することはできますが、 索引付レコードによってアクセスされるファイルは、シリアル・レコード・パーツではなく、 索引付レコード・パーツで識別されます。
関連概念
EGL での変数の参照
関連概念
EGL での変数と定数の宣言
関連リファレンス
SQL レコードの内部レイアウト