NULL-Wert zu leerem Wert? Keine Standardzuordnung mehr

Wenn Sie ein neues Feld in Ihrer Datenbank erstellen, können Sie in 4D wählen, ob Sie den NULL Wert einem leeren Wert zuordnen wollen oder nicht. Ab 4D v19 R4 wird 4D in neuen Projekten den NULL Wert nicht mehr standardmäßig einem leeren Wert zuordnen.

Kurzer Rückblick: Ältere Versionen von 4D (vor der Einführung von 4D v11) unterstützten NULL nicht. Weder in der Datenbank noch in der Sprache.

Ab 4D v11 unterstützten Datenbanken NULL, ebenso wie die 4D SQL-Sprache, aber nicht die 4D Sprache. Genau aus diesem Grund war standardmäßig die Option „NULL-Wert auf leere Werte abbilden“ für neu erstellte Felder vorausgewählt. Dies erleichterte die Codierung mit der 4D Sprache erheblich.

Zurück in die Gegenwart, und mit ORDA, ist es eine andere Geschichte. ORDA kennt NULL in vollem Umfang und die Verwendung des NULL-Konzepts eröffnet viele Möglichkeiten in Ihrem Code.

NULL wird verwendet, um abwesende Daten zu markieren. Auch wenn die Zuordnung von NULL zu einem leeren Wert logisch erscheinen mag, ist es in Wirklichkeit nicht dasselbe. Wenn ein Benutzer zum Beispiel eine 0 eingibt oder nie etwas eingegeben hat, kann das für Sie einen großen Unterschied bedeuten! NULL sagt Ihnen, dass nie ein Wert eingegeben wurde.

ORDA ist darauf ausgelegt, mit NULL-Werten zu arbeiten. Zum Beispiel gibt die Funktion .count() die Anzahl der Entitäten in der Entitätsauswahl mit einem Nicht-Null-Wert zurück. Mit ORDA ist es eine viel bessere Praxis, die Unterstützung von NULL beizubehalten und somit zu vermeiden, dass es auf einen leeren Wert abgebildet wird.

Wenn Sie zum Beispiel zählen müssen, wie viele Ihrer Kunden eine Handynummer in ihrer Beschreibung angegeben haben, schreiben Sie einfach, dass das Feld „mobile“ Ihrer Tabelle den Wert Null unterstützt:

$count:=ds.Users.all().count("mobile")

Wann immer Sie einen NULL-Wert einem leeren Wert zuordnen müssen, können Sie die Option NULL-Werte auf leere Werte in den Feldeigenschaften zuordnen verwenden:

Da ORDA die Standardmethode für die Arbeit mit 4D geworden ist, ist es nun an der Zeit, den Standardwert für diese Option zu ändern. Wenn Sie ein Projekt mit 4D v19 R4 starten, ist diese Option nicht mehr standardmäßig für neu erstellte Felder gesetzt – aber natürlich können Sie sie bei Bedarf immer noch aktivieren!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.