Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Les Valeurs « NULL »
Une valeur NULL est une valeur indéfinie.
Selon le type de la variable, PowerBuilder effectue une initialisation appropriée. Une variable numérique est initialisée à 0, une variable booléenne à False et une variable de type chaîne de caractères à une chaîne vide. Cependant, PowerBuilder n’initialise pas une variable à la valeur NULL.
Vous pouvez initialiser une variable à la valeur NULL par la fonction SetNull(nom de la variable) et vous utilserez la fonction IsNull(nom de la variable) qui retourne un booléen pour tester le contenu d’une variable. Une valeur NULL peut, également, être lue d’une base de données.
Le résultat d’une expression qui contient une valeur NULL est une valeur NULL. Une fonction qui a un argument ayant une valeur NULL retourne une valeur NULL.
ATTENTION Lorsque vous faites des tests de condition sur des valeurs null...
Hors ligne
Exemples par la pratique :
Vous pouvez initialiser une variable à la valeur NULL par la fonction SetNull(nom de la variable)
// à faire SetNull( variable ) // à ne pas faire : (*) variable = NULL
(*) : difficile de se tromper puisque PB n'accepte pas le mot-clé NULL dans le powerscript (mais dans les scripts SQL embarqués).
vous utiliserez la fonction IsNull(nom de la variable) qui retourne un booléen pour tester le contenu d’une variable.
// à faire : IF IsNull( variable ) THEN... // à ne pas faire : (*) IF variable = NULL THEN
Une valeur NULL peut, également, être lue d’une base de données.
SELECT champ INTO :variable FROM table WHERE conditions ; IF IsNull( variable ) THEN ....
Le résultat d’une expression qui contient une valeur NULL est une valeur NULL. Une fonction qui a un argument ayant une valeur NULL retourne une valeur NULL.
ATTENTION Lorsque vous faites des tests de condition sur des valeurs null...
une comparaison à une variable NULL renvoie toujours FALSE :
// à ne pas faire : IF variable <> 1 THEN // code exécuté si la variable est non NULL et différente de 1 ELSE // code exécuté si la variable est NULL ou égale à 1 END IF // à faire : IF IsNull( variable ) THEN // code exécuté si la variable est NULL ELSEIF variable <> 1 THEN // code exécuté si la variable est différente de 1 ELSE // code exécuté si la variable est égale à 1 END IF
Hors ligne
Autre chose à savoir :
NULL fait partie des mots réservés PB (en vert par défaut dans les scripts), pourtant PB autorise de déclarer une variable ayant pour nom NULL (ex : String Null)
Soyez donc vigilents pour ne pas être assez tordus pour nommer une variable de la sorte
Hors ligne
Tonio a écrit:
Soyez donc vigilents pour ne pas être assez tordus pour nommer une variable de la sorte
Bravo mon "petit" Toni, je vois que tu gardes les bonnes pratiques (norme de nommage des variables).
J'espère qu'on aura l'occas de se recroiser sur une mission
Hors ligne
Le monde est petit et les missions, un éternel recommencement (oh que c bô !)
Je l'espère aussi, mais pas chez bernadette
Hors ligne