Při vytváření nového pole v databázi vám 4D umožňuje zvolit, zda chcete namapovat hodnotu NULL na prázdné hodnoty, nebo ne. Počínaje verzí 4D v19 R4 již 4D v nových projektech nebude ve výchozím nastavení mapovat hodnotu NULL na prázdnou hodnotu.
Krátká rekapitulace historie: Starší verze 4D (před uvedením 4D v11) nepodporovaly hodnotu NULL. Ani v databázi, ani v jazyce.
Počínaje verzí 4D v11 databáze podporovaly NULL, stejně jako jazyk SQL 4D, ale ne jazyk 4D. Právě z tohoto důvodu byla ve výchozím nastavení pro nově vytvořená pole předvolena možnost „namapovat hodnotu NULL na prázdné hodnoty“. To značně usnadňovalo kódování pomocí jazyka 4D.
Zpět do současnosti a s jazykem ORDA je to jinak. ORDA si je plně vědoma NULL a použití konceptu NULL otevírá ve vašem kódu spoustu možností.
NULL se používá k označení nepřítomných dat. I když se mapování NULL s prázdnou hodnotou může zdát logické, ve skutečnosti to není totéž. Pokud například uživatel zadá 0 nebo nikdy nic nezadal, může to pro vás znamenat zásadní rozdíl! NULL říká, že nikdy nebyla zadána žádná hodnota.
ORDA je navržena tak, aby pracovala s hodnotami NULL. Například funkce .count() vrací počet entit ve výběru entit s nenulovou hodnotou. U ORDA je mnohem lepší zachovat podporu NULL, a vyhnout se tak mapování na prázdnou hodnotu.
Pokud například potřebujete spočítat, kolik vašich klientů zadalo do svého popisu číslo mobilního telefonu, stačí v případě, že pole „mobile“ vaší tabulky podporuje hodnotu Null, napsat:
$count:=ds.Users.all().count("mobile")
Kdykoli potřebujete namapovat hodnotu NULL na prázdnou hodnotu, můžete ve vlastnostech pole ještě použít volbu Mapovat hodnoty NULL na prázdné hodnoty :
Protože se ORDA stala standardním způsobem práce s 4D, je nyní čas změnit výchozí hodnotu této volby. Při spuštění projektu s 4D v19 R4 již tato volba není pro nově vytvořená pole standardně nastavena – ale samozřejmě ji můžete v případě potřeby stále zapnout!