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 レコードの内部レイアウト