sqlDataCode プロパティーは、VisualAge® Generator からマイグレーションされたコードのための EGL 型と SQL 型の間のマッピングを規定します。
EGL システム・コードは、EGL 型と SQL 型の間にデフォルト・マッピングがあることを想定しています。 システム・コードは、宣言時、検証時、および実行時にこのマッピングを使用します。 このマッピングを示したテーブルについては、『SQL テーブル・データの検索』を参照してください。
DB2® のこのデフォルト・マッピングをオーバーライドするには、SQL フィールド・レベルの sqlDataCode プロパティーを使用します。 このプロパティーは、VisualAge Generator から移行したコードで必要でした。このようなコードには、現在の多くの EGL データ型に相当するデータ型がありませんでした。このプロパティーは主に、以前の製品バージョンとの互換性を保つために維持されています。
Record ExampleSQLRecord type SQLRecord
myHexVar HEX(8) {sqlDataCode = 497}; // SQL INTEGER に対応
end
以下の表は、さまざまな SQL データ型に対応する、DB2 での sqlDataCode 値を示しています。
| SQL データ型 | sqlDataCode |
|---|---|
| BIGINT | 492, 493 |
| BIT | DB2 では該当なし |
| BLOB | 404, 405 |
| BOOLEAN | DB2 では該当なし |
| CHAR | 452, 453 |
| CLOB | 408, 409 |
| DATE | 384, 385 |
| DECIMAL | 484, 485 |
| DOUBLE | 480, 481 |
| FLOAT | 480, 481 |
| GRAPHIC | 468, 469 |
| INTEGER | 496, 497 |
| LONG VARBINARY | 480, 481 |
| LONG VARCHAR | 456, 457 |
| LONG VARGRAPHIC | 472, 473 |
| NUMERIC | 484, 485 |
| REAL | 480, 481 |
| SMALLINT | 500, 501 |
| TIME | 388, 389 |
| TIMESTAMP | 392, 393 |
| VARBINARY | 480, 481 |
| VARCHAR | 448, 449 |
| VARGRAPHIC | 464, 465 |
ペアになった各数値の最初の値は、NOT NULL であると定義されている列を表します。 変数が NULL 可能であるかどうかを判別する際、EGL システム・コードでは、SQL データ・コードではなく、修飾子 ? または isSQLNullable プロパティーに基づいて処理が行われます。