Lorsque vous créez un nouveau champ dans votre base de données, 4D vous permet de choisir de mapper la valeur NULL à des valeurs vides ou non. À partir de 4D v19 R4, dans les nouveaux projets, 4D ne mappera plus par défaut la valeur NULL à une valeur vide.
Rappel rapide de l’histoire : les anciennes versions de 4D (avant l’introduction de 4D v11) ne supportaient pas les valeurs NULL. Ni dans la base de données, ni dans le langage.
À partir de 4D v11, les bases de données supportent NULL, ainsi que le langage SQL de 4D, mais pas le langage 4D. Pour cette raison précise, par défaut, l’option « map NULL value to blank values » était présélectionnée pour les champs nouvellement créés. Cela rendait le codage avec le langage 4D beaucoup plus facile.
De retour à aujourd’hui, et avec ORDA, c’est une autre histoire. ORDA est pleinement conscient de NULL et l’utilisation du concept de NULL ouvre beaucoup de possibilités dans votre code.
NULL est utilisé pour marquer les données absentes. Même si la correspondance entre NULL et une valeur vide peut sembler logique, ce n’est pas vraiment la même chose. Par exemple, si un utilisateur saisit un 0 ou n’a jamais rien saisi, cela peut être une différence majeure pour vous ! NULL vous indique qu’aucune valeur n’a jamais été saisie.
ORDA est conçu pour travailler avec des valeurs NULL. Par exemple, la fonction .count() renvoie le nombre d’entités dans la sélection d’entités avec une valeur non nulle. Avec ORDA, c’est une bien meilleure pratique de garder le support de NULL, et ainsi éviter de le mapper à une valeur vide.
Par exemple, si vous avez besoin de compter combien de vos clients ont entré un numéro de téléphone mobile dans leur description, si le champ « mobile » de votre table supporte la valeur Null, écrivez simplement :
$count:=ds.Users.all().count("mobile")
Chaque fois que vous avez besoin de faire correspondre une valeur NULL à une valeur vide, vous pouvez toujours utiliser l’option Map NULL values to blank values dans les propriétés du champ :
ORDA étant devenu le moyen standard de travailler avec 4D, il est maintenant temps de changer la valeur par défaut de cette option. En démarrant un projet avec 4D v19 R4, cette option n’est plus définie par défaut pour les champs nouvellement créés – mais bien sûr, vous pouvez toujours l’activer si nécessaire !