DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Syntaxe WLangage / Mots-clés réservés
  • Présentation
  • Null et les requêtes
  • Ignorer des paramètres : Null dans la fonction HExécuteRequête
  • Paramètres d'une requête provenant d'un champ de saisie : Null si vide
  • Null et les variants
  • Null et les valeurs numériques
  • Null et les fonctions du WLangage
  • Null et les objets dynamiques
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
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. Consultez le paragraphe "Null et les requêtes" de cette page.
  • Pour spécifier qu'une variable de type variant ne contient pas de valeur. Consultez le paragraphe "Null et les variants" de cette page.
  • Pour comparer une valeur à 0. Consultez le paragraphe "Null et les numériques" de cette page.
  • Dans certaines fonctions du WLangage, pour indiquer que le paramètre ne doit pas être pris en compte. Consultez le paragraphe "Null et les fonctions du WLangage" de cette page.
  • Pour vérifier si un objet dynamique est alloué ou non. Consultez le paragraphe "Null et les objets dynamiques" de cette page.
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és.
Exemple : Soit la requête "Clients_nom_prénom" dont le code SQL est le suivant :
SELECT * FROM CLIENT WHERE NOM = {Param1} AND PRENOM = {Param2}
  • Cas 1 : Les 2 paramètres sont donnés
    HExécuteRequête(Clients_nom_prénom, hRequêteDéfaut, "Dupond", "Jean")

    exécutera la requête :
    SELECT * FROM CLIENT WHERE NOM = 'Dupond' AND PRENOM = 'Jean'
  • Cas 2 : Seul le nom est donné
    HExécuteRequête(Clients_nom_prénom, hRequêteDéfaut, "Dupond")

    exécutera la requête
    SELECT * FROM CLIENT WHERE NOM = 'Dupond'
  • Cas 3 : Seul le prénom est donné
    // utilisation du variant obligatoire pour variable de type Null (non renseignée)
    sNom est un Variant = Null
    HExécuteRequête(Clients_nom_prénom, hRequêteDéfaut, sNom, "Jean")

    Ou
    HExécuteRequête(Clients_nom_pré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, le code SQL exécuté est :
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_ChampSaisie1)
Dans ce code, SAI_ChampSaisie1 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 par l'utilisateur dans le champ SAI_ChampSaisie1Option "NULL si vide" cochée pour le champ SAI_ChampSaisie1Code SQL exécuté
Aucune valeurOption cochéeSELECT NomDesRubriques
FROM NomDesFichiers
Aucune valeurOption décochéeSELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = ' '
Une valeur est saisieOption cochée ou décochéeSELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = 'ValeurSaisie'
Null et les variants
Pour spécifier qu'une variable de type Variant ne contient pas de valeur, il suffit d'utiliser la constante NULL.
Remarques :
  • Pour un type variant, NULL signifie "Pas affecté"
  • Pour un type numérique, NULL signifie "égal 0" (voir ci-dessous)
    vVal est un Variant
    SI vVal = Null ALORS ...
    // Le test renvoie Vrai car le variant n'est pas affecté
    FIN
     
    vVal = 0
    SI vVal = Null ALORS ...
    // Le test renvoie Faux car le variant est affecté
    // avec un entier de valeur 0
    FIN
     
    vVal = 5
    SI vVal = Null ALORS ...
    // Le test renvoie Faux car le variant est affecté
    // avec un entier de valeur 5
    FIN
Null et les valeurs numériques
Utilisé avec des valeurs numériques, Null permet de comparer une valeur à 0. Il est uniquement possible d'utiliser les opérateurs de comparaison d'égalité et de différence (opérateur = et opérateur <>).
Remarques :
  • Pour un type variant, NULL signifie "Pas affecté" (voir ci dessus)
  • Pour un type numérique, NULL signifie "égal 0"
    nVal est un entier
    SI nVal = Null ALORS ...
    // Le test renvoie Vrai car nVal=0
    FIN
     
    nVal = 5
    SI nVal = Null ALORS ...
    // Le test renvoie Faux car nVal=5
    FIN
Null et les fonctions du WLangage
Certaines fonctions du WLangage acceptent en paramètre Null pour spécifier que le paramètre ne prend aucune valeur.
Quelques exemples :
ArbreAjoute, ArbreInsèreNull permet de ne pas afficher d'images pour les différents niveaux des éléments ajoutés.
ArbreListeFilsNull permet de lister les fils à partir de la racine de l'arbre.
ArbreModifieNull permet de ne pas modifier l'image définie avec la fonction ArbreAjoute
INIEcritNull permet de supprimer un mot-clé ou une section dans le fichier INI
Null et les objets dynamiques
Pour tous les objets dynamiques (classe, structure, tableau, objet automation, ...), Null permet de savoir si l'objet est alloué ou non.
Par exemple :
// Déclaration d'un l'objet automation dynamique
MonObjetDynamique est un objet Automation dynamique
...
 
SI MonObjetDynamique = Null ALORS
// Création d'un l'objet automation dynamique
MonObjetDynamique = allouer un objet Automation dynamique MonServeur
FIN
Version minimum requise
  • Version 10
Documentation également disponible pour…
Commentaires
Variant et NULL
Rappel : pour utiliser le NULL sur les sous-éléments d'un variant, il faut utiliser ..Valeur comme indiqué dans la page de doc sur le variant

vVal est un Variant
vVal.x=Null //Renvoie Faux
vVal.x..Valeur=Null //Renvoie Vrai
Antoine
21 sep. 2015

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale