Die Builddeskriptoroption v60NumWithCharBehavior wirkt sich
auf die EGL-Handhabung des Typs NUM in Zuordnungen und Vergleichen aus.
Ab Version 7 wird der Typ NUM in Zuordnungen und Vergleichen mit CHAR-Werten von EGL wie andere
numerische Typen behandelt.
Ist die Builddeskriptoroption v60NumWithCharBehavior mit YES
definiert, entspricht die EGL-Verarbeitung von Variablen des Typs NUM der in früheren
Versionen und in VisualAge Generator üblichen Verarbeitung.
Die Unterschiede im Verhalten sind subtil und komplex. Definieren Sie diese Option nur mit YES,
wenn VisualAge Generator emuliert werden muss. Weitere Informationen hierzu können
Sie den in diesem Abschnitt angegebenen Beispielen entnehmen.
Die Option v60NumWithCharBehavior kann sich auf das Verhalten
anderer Builddeskriptoroptionen, z. B. spacesZero und
blanksAsZero, auswirken.
Weitere Informationen hierzu finden Sie in spacesZero und
blanksAsZero.
Werte
- NO
- EGL behandelt den Typ NUM wie die übrigen numerischen Typen.
- YES
- EGL behandelt den Typ NUM wie in VisualAge
Generator üblich.
Standardwert
Der Standardwert für
v60NumWithCharBehavior richtet sich nach der Builddeskriptoroption
vagCompatibility:
- Ist vagCompatibility mit YES definiert, lautet der Standardwert für
v60NumWithCharBehavior YES.
- Ist vagCompatibility mit NO definiert, lautet der Standardwert für
v60NumWithCharBehavior NO.
Manuelles Definieren der Option
In den meisten Fällen ist es nicht
erforderlich, die Builddeskriptoroption v60NumWithCharBehavior manuell zu
definieren.
- Wenn Sie eine Migration von VisualAge Generator
vorgenommen haben, können Sie auf ein manuelles Definieren von
v60NumWithCharBehavior verzichten, da die Option automatisch mit YES
definiert wird, wenn vagCompatibility mit YES definiert ist.
- Wenn Sie keine Migration von VisualAge Generator
vorgenommen haben, können Sie auf ein manuelles Definieren von
v60NumWithCharBehavior verzichten, da die Option automatisch mit NO
definiert wird, wenn vagCompatibility mit NO definiert ist.
- Beim Schreiben neuer Anwendungen, bei denen die Arbeitsbereichsvorgabe
vagCompatibility mit YES definiert ist, müssen Sie die
Builddeskriptoroptionen v60NumWithCharBehavior und
vagCompatibility explizit mit NO definieren, wenn Sie nicht das
Standardverhalten von VisualAge Generator übernehmen
möchten.
Beispiele
Wenn
v60NumWithCharBehavior mit
YES definiert ist, können Sie folgende Vergleiche vornehmen:
if( "2009-03-26" > 0)
...
end
Die Null wird für den Vergleich in "0" geändert.
Beim Verhalten von Version 7 ist 0 eine Zahl und der Vergleich schlägt fehl, da
"2009-03-26" eine ungültige Zahl ist.
Ist
v60NumWithCharBehavior
mit
YES definiert, ordnet EGL über eine Byte-Verschiebung einen Wert des Typs NUM zu einem Wert des Typs
CHAR zu.
num_var NUM = -4;
char_var CHAR;
char_var = num_var; // value of char_var is 't'
Beim Verhalten von Version
7 ergäbe sich der Wert '4' für char_var.