sqlDataCode

sqlDataCode プロパティーは、VisualAge® Generator からマイグレーションされたコードのための EGL 型と SQL 型の間のマッピングを規定します。

EGL システム・コードは、EGL 型と SQL 型の間にデフォルト・マッピングがあることを想定しています。 システム・コードは、宣言時、検証時、および実行時にこのマッピングを使用します。 このマッピングを示したテーブルについては、『SQL テーブル・データの検索』を参照してください。

DB2® のこのデフォルト・マッピングをオーバーライドするには、SQL フィールド・レベルの sqlDataCode プロパティーを使用します。 このプロパティーは、VisualAge Generator から移行したコードで必要でした。このようなコードには、現在の多くの EGL データ型に相当するデータ型がありませんでした。このプロパティーは主に、以前の製品バージョンとの互換性を保つために維持されています。

例えば、EGL SQL レコードに HEX フィールドがあるとします。 データベース表でこれに相当するフィールドは SQL INTEGER です。 正しくマッピングするためのデータを取得するには、 EGL フィールドの sqlDataCode プロパティーに、適切な SQL データ型を特定する数値を設定する必要があります。SQL INTEGER のコードは 497 です。
Record ExampleSQLRecord type SQLRecord
  myHexVar HEX(8) {sqlDataCode = 497};  // SQL INTEGER に対応
end

以下の表は、さまざまな SQL データ型に対応する、DB2 での sqlDataCode 値を示しています。

表 1. 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 プロパティーに基づいて処理が行われます。


フィードバック