Die Eigenschaft 'isSQLNullable' gibt an, ob das Feld auf einen Nullwert gesetzt werden kann. Die Eigenschaft ist nur für Felder in
einem SQL-Datensatz verfügbar. Gültige Werte sind NO (Standardeinstellung)
und YES.
EGL verwaltet diese Eigenschaft zwecks Kompatibilität mit früheren Versionen.
Verwenden Sie für neuen Code das Typerweiterungszeichen "?", um eine nullfähige Variable anzugeben. Weitere Informationen finden Sie unter
Typerweiterungszeichen und in Nullwerte und der Typ 'nullable' (nullfähig).
Variablen, die mithilfe des Typerweiterungszeichens "?" als nullfähig deklariert werden, unterscheiden sich geringfügig von Variablen, die mit
'{
isSqlNullable =
YES}' als nullfähig deklariert werden. Wenn die nullfähige Variable einen Nullwert aufweist und in einem Ausdruck mit mehr als einem Operanden verwendet wird, ergibt
sich folgender Wert:
- Null, wenn die Variable mit "?" deklariert wurde. EGL berücksichtigt das Nullflag.
- Ungleich null, wenn die Variable mit '{isSqlNullable =
YES}' deklariert wurde. In diesem Fall ignoriert EGL das Nullflag , und der Wert entspricht Null, Leerzeichen, dem aktuellen Datum oder der aktuellen
Uhrzeit. Dieses Verhalten sorgt für Kompatibilität mit früheren Versionen.
Betrachten Sie die folgenden Beispiele:
Record mySQLRecord type SQLRecord
anInt INT {isSQLNullable = YES};
end
...
myRec mySQLRecord;
result, anotherInt INT?;
myRec.anINT = NULL;
result = myRec.anInt + 1;
In diesem Fall ist das Ergebnis 1, da EGL das Nullflag bei der Auswertung des Ausdrucks ignoriert.
anotherInt INT? = NULL;
result = anotherInt + 1;
In diesem Fall ist das Ergebnis ein Nullwert, weil EGL das Nullflag berücksichtigt (wenn einer der Operanden
einen Nullwert aufweist, ist das Ergebnis des numerischen Ausdrucks null).
Wenn ein bestimmtes Feld in einem SQL-Datensatz nullfähig ist, sind die folgenden Funktionen verfügbar:
- Das Feld kann einen Nullwert aus einer SQL-Datenbanktabelle akzeptieren.
- Eine Zuordnung kann das Feld auf null setzen. Diese Aktion hat den Nebeneffekt, dass das Feld initialisiert wird, wie in
Dateninitialisierung beschrieben.
- Jeder logische Ausdruck kann testen, ob das Feld auf null gesetzt ist oder ob Daten, die aus einer Datenbank empfangen werden, abgeschnitten wurden.