sqlDataCode

Die Eigenschaft 'sqlDataCode' stellt Zuordnungen zwischen EGL-Typen und SQL-Typen für Code bereit, der von VisualAge Generator migriert wurde.

Der EGL-Systemcode nimmt eine Standardzuordnung zwischen EGL-Typen und SQL-Typen an. Der Systemcode verwendet die Zuordnung zur Deklarationszeit, zur Auswertungszeit und zur Laufzeit. Eine Tabelle mit den Zuordnungen finden Sie unter 'SQL-Tabellendaten abrufen'.

Um diese Standardzuordnung in DB2 zu überschreiben, können Sie die SQL-Eigenschaft 'sqlDataCode' auf Feldebene verwenden. Diese Eigenschaft war in Code erforderlich, der von VisualAge Generator migriert wurde, da in diesem Code Entsprechungen für viele aktuelle EGL-Datentypen fehlten. Die Eigenschaft wird hauptsächlich zwecks Kompatibilität mit früheren Produktversionen verwaltet.

Nehmen Sie beispielsweise an, Sie haben ein Hexadezimalfeld (HEX) in Ihrem EGL-SQL-Datensatz, während das entsprechende Feld in der Datenbanktabelle den SQL-Typ INTEGER aufweist. Um dafür zu sorgen, dass die Daten ordnungsgemäß zugeordnet werden, müssen Sie die Eigenschaft 'sqlDataCode' für das EGL-Feld auf eine Zahl setzen, die den entsprechenden SQL-Datentyp angibt. Der Code für den SQL-Typ INTEGER ist 497:
Record ExampleSQLRecord type SQLRecord
  myHexVar HEX(8) {sqlDataCode = 497};  // entspricht dem SQL-Typ INTEGER
end

Die folgende Tabelle zeigt sqlDataCode-Werte in DB2 für die verschiedenen SQL-Datentypen.

Tabelle 1. sqlDataCode-Werte aus DB2
SQL-Datentyp sqlDataCode
 
BIGINT 492, 493
BIT In DB2 nicht zutreffend
BLOB 404, 405
BOOLEAN In DB2 nicht zutreffend
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

Die erste Zahl jedes Zahlenpaars stellt eine Spalte dar, die als NOT NULL (nicht auf null gesetzt) definiert ist. Um zu bestimmen, ob eine Variable nullfähig ist, verwendet der EGL-Systemcode den Änderungswert '?' oder die Eigenschaft 'isSQLNullable', nicht den SQL-Datencode.


Feedback