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