Record ExampleRecord type basicRecord
10 myField CHAR(5);
20 myField01 CHAR(1) = "1";
20 myField02 CHAR(1) = "2";
20 myArray01 CHAR(1)[3] = ["a", "b", "c"];
// 以下のエントリーでは、最初の要素に "z" を割り当てます
// そして、(Java コードでは) 残りはブランクです
20 myArray02 CHAR(1)[3] = ["z"];
end
この規則は、フォーム・フィールドにも適用されます。DataTable で、イニシャライザーを指定することはできません。
Record ExampleRecord type basicRecord
myRecField INT = 2;
end
Program myProgram (myField03 INT = 3)
myField04 STRING = "EGL";
function main()
// myRecord.myRecField = 2
myRecord ExampleRecord;
end
end
Record partA
10 aa char(4) = "abcd";
end
Record partB
10 bb char(4) = "1234";
end
Program Example
A partA;
B partB { redefines="A" };
function main()
// 次のそれぞれの文が "abcd" を書き込みます
writeStdOut( A.aa );
writeStdOut( B.bb );
// メモリー領域を、レコード partB の定義を反映するように設定します
set B initial;
// 次のそれぞれの文が "1234" を書き込みます
writeStdOut( A.aa );
writeStdOut( B.bb );
end
end
Record ExampleRecord
10 charField CHAR(24);
15 hexField HEX(16);
15 remainder CHAR(16);
end
hexField のメモリー領域は、HEX 変数に適した 2 進ゼロで初期化されます。
remainder フィールドは、ブランクで初期化されます。
HEX 文字 2 つで 1 バイトになるため、HEX(16) 変数が使用するのは 8 バイトのみです。配列の場合、配列の各メンバーが個別に初期化されます。
プログラムまたは関数引数として受け取られたレコードまたはフィールドが、 自動的に初期化されることはありません。
NULL 可能変数は特殊ケースです。 型拡張文字「?」を使用して作成された変数は、NULL に初期化されます。 i4glItemsNullable プロパティーによって制御される変数は、異なった初期値のセットを持っています。 i4glItemsNullable を参照してください。
| 型 | 初期化値 |
|---|---|
| ANY | NULL |
| BIN (および整数型)、HEX、FLOAT、SMALLFLOAT | 2 進ゼロ |
| BLOB、CLOB | lobLib.freeBlob() または lobLib.freeClob() を使用してリセット |
| BOOLEAN | FALSE |
| CHAR、MBCHAR | 単一バイトのブランク |
| DATE、TIME、TIMESTAMP | マシン・クロックの (TIMESTAMP の場合は、マスクが必要とするバイト数の) 値 |
| DBCHAR | 2 バイトのブランク |
| DECIMAL、MONEY、NUM、NUMC、PACF | 数値のゼロ |
| INTERVAL | 前に正符号が付いた (マスクが必要とするバイト数の) 数値のゼロ |
| STRING | "" (NULL ストリング) |
| UNICODE | ユニコードのブランク (16 進の 0020) |
library lib1
a int = 1;
b int = lib2.c;
end
library lib2
c int = 2;
d int = lib1.a;
end
プログラムが lib1 または lib2 のいずれかを使用しようとすると、EGL は例外をスローします。
| プラットフォーム | 問題 |
|---|---|
| COBOL 生成 | EGL により生成された COBOL プログラムはすべてのレコードを初期化します。 レコード内のフィールドは、上記の表で説明されているように変数が EGL 型に初期化されてから、COBOL INITIALIZE 文をオーバーライドして、COBOL データ型に基づき初期化が行なわれます。 注: NUM 型の変数と CHAR 型の変数を比較する COBOL プログラムを生成する場合は、
コードによってフィールドが初期化されるようにしてください。そうしないと、比較の実行時にプログラムで障害が発生し、異常終了メッセージが表示される場合があります。この場合、例外処理コードは実行されません。これと同様の COBOL 固有の注意事項が、ローカル・レコードのフィールドに適用されます。
|
| JavaScript 生成 | サポートされないデータ型は、ArrayDictionary、BIN (小数点以下の桁数を含むもの)、BLOB、CHAR、CLOB、DBCHAR、HEX、INTERVAL、MBCHAR、NUMC、STRING (サイズ制限を含むもの)、PACF、UNICODE、および構造化されたレコード・パーツです。 |