2.3 La gestion du NULL

Transcription

2.3 La gestion du NULL
WLangage.book Page 45 Mardi, 23. avril 2013 1:59 13
2.3 La gestion du NULL
Le mot-clé Null peut être utilisé de différentes
manières en WLangage :
• pour indiquer qu'un paramètre ne doit pas être
pris en compte dans une requête
• pour spécifier qu'une variable de type variant ne
contient pas de valeur
• pour comparer une valeur à 0
• dans certaines fonctions du WLangage, pour indiquer que le paramètre ne doit pas être pris en
compte
• pour vérifier si un objet dynamique est alloué ou
non
2.3.1 Null et les requêtes
Ignorer des paramètres : Null dans la
fonction HExécuteRequête
Lors de l'exécution d'une requête paramétrée avec
la fonction HExécuteRequête, tous les paramètres
de la requête ne doivent pas obligatoirement être
précisés. Les conditions de la requête utilisant des
paramètres non précisés ou ayant pour valeur Null
seront ignorées.
Exemple : Soit la requête "ClientNomPrénom" dont
le code SQL est le suivant :
SELECT * FROM CLIENT
WHERE NOM = {Param1}
AND PRENOM = {Param2}
• Cas n°1 : Les 2 paramètres sont donnés :
HExécuteRequête(ClientNomPrénom, ...
hRequêteDéfaut, "Dupond", "Jean")
exécutera la requête :
SELECT * FROM CLIENT
WHERE NOM = 'Dupond'
AND PRENOM = 'Jean'
• Cas n°2 : Seul le nom est donné :
HExécuteRequête(ClientNomPrénom, ...
hRequêteDéfaut, "Dupond")
exécutera la requête :
SELECT * FROM CLIENT WHERE
NOM='Dupond'
• Cas n°3 : Seul le prénom est donné :
sNom est un Variant = Null
// utilisation du variant
// obligatoire
// pour variable de type Null
// (non renseignée)
HExécuteRequête(ClientNomPrénom, ...
hRequêteDéfaut, sNom, "Jean")
Ou
HExécuteRequête(ClientNomPrénom, ...
hRequêteDéfaut, Null, "Jean")
exécutera la requête :
SELECT * FROM CLIENT
WHERE PRENOM='Jean'
Paramètres d'une requête provenant
d'un champ de saisie : Null si vide
Pour que votre requête s’exécute même si aucune
valeur n’est saisie par l’utilisateur, cochez l’option
"NULL si vide" des champs de saisie (onglet "Détail"
de la description du champ).
Grâce à cette option, si le champ est vide, la valeur
du paramètre renvoyée à la requête correspondra à
la constante NULL. Ainsi, lors de l’exécution de la
requête, aucune erreur n’est générée : la ou les
conditions dépendant de ce paramètre sont simplement ignorées.
Par exemple, la requête "Ex1" correspond au code
SQL suivant :
SELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = {Param1}
La requête "Ex1" est exécutée dans le bouton
"Btn_OK" par la fonction HExécuteRequête. Le
code WLangage utilisé est le suivant :
HExécuteRequête, (...
Ex1,hRequêteDéfaut,SAI_Saisie1)
Dans ce code, SAI_Saisie1 correspond au champ
dans lequel l'utilisateur doit saisir le paramètre de
la requête.
Pour cet exemple, le tableau ci-dessous décrit l’utilisation de l’option "NULL si vide" :
Valeur saisie
"NULL si
dans le champ vide" pour le
SAI_Saisie1
champ
ChampSaisi
e1
Aucune valeur Option
cochée
Code SQL exécuté
SELECT NomRubriques
FROM NomFichiers
Partie 2 : Syntaxe de base du WLangage
45