Utiliser des valeurs Null dans Visual FoxPro

Cet article explique comment utiliser des valeurs de données Null dans les commandes et fonctions Visual FoxPro.

Version d’origine du produit : Visual FoxPro
Numéro de la base de connaissances d’origine : 130307

Résumé

Visual FoxPro version 3.0 prend en charge les valeurs de données Null. Les versions de FoxPro antérieures à la version 3.0 ne prenaient pas directement en charge les valeurs de données Null. Cet article décrit les règles générales que Visual FoxPro suit pour gérer les valeurs Null (représentées sous la forme .NULL.) lorsqu’elles ont passé des commandes ou des fonctions Visual FoxPro.

Informations supplémentaires

Utilisez une valeur null (.NULL.) lorsqu’une valeur est manquante, non pertinente ou inconnue. Dans les versions précédentes de FoxPro, les valeurs inconnues ou manquantes étaient représentées par des espaces ou des zéros, qui auraient pu être mal interprétés. Avec Visual FoxPro, vous pouvez maintenant stocker une valeur Null dans un champ.

Il est important de noter qu’une valeur null (.NULL.) dans Visual FoxPro n’est pas identique à une valeur vide, vide ou nulle. Null représente l’absence d’une valeur. Par conséquent, null n’est jamais égal à, supérieur ou inférieur à une autre valeur, null ou non null. La prise en charge de Visual FoxPro pour les valeurs null est conforme aux normes ANSI et affecte n’importe quelle zone du produit où les valeurs et les expressions sont utilisées.

Règles générales pour les valeurs Null

Voici les règles générales pour les valeurs null passées aux commandes ou fonctions Visual FoxPro :

  • Les commandes génèrent une erreur en cas de transmission d’une valeur Null.

  • Les fonctions qui acceptent des valeurs Null retournent .NULL. en conséquence.

  • Les fonctions qui attendent une valeur numérique génèrent une erreur si elles sont fournies avec une valeur Null.

  • ISBLANK(), ISDIGIT(), ISLOWER(), ISUPPER(), ISALPHA(), et EMPTY() retournent tous false (.F.) lorsqu’une valeur null est passée.

  • ISNULL() retourne true (.T.) en cas de transmission d’une valeur null.

  • Les commandes SQL et SELECT SQL traitent les INSERT valeurs Null via les clauses IS NULL et IS NOT NULL.

  • Les fonctions d’agrégation SQL, telles que MAX(), MIN()et SUM() ignorent toutes les valeurs Null dans l’agrégat.

  • Les fonctions d’agrégation Visual FoxPro se propagent si toutes les valeurs fournies sont des valeurs Null ; sinon, toute valeur Null est ignorée .NULL. .

Le reste de cet article fournit plus d’informations et d’exemples pour ces règles générales.

Les commandes génèrent une erreur en cas de transmission d’une valeur Null

Une commande Visual FoxPro est une instruction qui entraîne une action. Exemples de commandes : USE, BROWSEet DELETE. Par exemple, la USE commande retourne une erreur pour ce code :

STORE .NULL. TO nWorkArea
USE mytable IN (nWorkArea)

La clause IN de la USE commande attend une valeur numérique ou alpha. Lorsqu’une .NULL. erreur Table Number is Invalid est générée.

La NVL() fonction peut être utilisée pour supprimer des valeurs Null des calculs ou des opérations où les valeurs Null ne sont pas prises en charge ou ne sont pas pertinentes.

STORE .NULL. TO nWorkArea
USE mytable IN NVL(nWorkArea,0)

Cela ouvrirait mytable dans la première zone de travail disponible. Pour plus d’informations sur la fonction, consultez le fichier d’aide ou la NVL() documentation Visual FoxPro.

Les fonctions qui acceptent des valeurs Null retournent . NULL. en conséquence

Une fonction Visual FoxPro est une routine qui effectue une tâche spécifique et prend zéro argument ou plus. Exemples de fonctions : ISBLANK(), UPPER()et SUBSTR(). La plupart des fonctions Visual FoxPro autorisent le passage d’une valeur Null en tant qu’argument sans générer d’erreur. Toutefois, un .NULL. est retourné à partir de la fonction. En d’autres termes, lorsque vous passez une valeur Null à une fonction, le résultat est toujours null. C’est également ainsi que les valeurs Null sont traitées dans les équations mathématiques. Par exemple, une valeur null ajoutée à 500 est égale à null, et une valeur null multipliée par zéro est égale à null (et non à zéro).

L’exemple de code suivant retourne .NULL.:

cLastName = "Johnson"
nBegin = 5
nExtract = .NULL.
?SUBSTR(cLastName,nBegin,nExtract)

Les exceptions à cette règle sont les ISBLANK()fonctions , ISDIGIT(), ISUPPER()ISLOWER(), ISALPHA(), et EMPTY() , qui retournent chacune une .F. valeur. La ISNULL() fonction retourne une .T. valeur.

INSERT SQL et SELECT traitent les valeurs Null à l’aide de nouvelles clauses

Deux nouvelles clauses (IS NULL et IS NOT NULL) gèrent les valeurs Null dans les INSERT commandes SQL et SELECT . Par exemple, pour localiser tous les enregistrements d’une table où cLastName n’a pas la valeur Null, utilisez la commande suivante :

SELECT cLastName FROM mytable WHERE cLastName IS NOT NULL

Pour rechercher des valeurs Null, utilisez la clause IS NULL.

Les fonctions d’agrégation SQL ignorent les valeurs Null

Une fonction d’agrégation est une fonction qui effectue une opération numérique telle que l’addition, le minimum, le maximum ou la moyenne sur un groupe (agrégat) de valeurs. Exemples de fonctions d’agrégation : MAX(), MIN()et SUM().

La SELECT commande SQL, par exemple, peut utiliser des fonctions d’agrégation pour récupérer des valeurs numériques à partir de tables. Par exemple, la commande suivante SELECT retourne la valeur maximale à partir d’un champ nommé nYTDSales:

SELECT MAX(nYTDSales) from mytable

Toute fonction d’agrégation SQL exécutée sur un champ qui contient .NULL. des valeurs ignore les .NULL. valeurs et retourne un résultat qui traite les valeurs Null comme si elles n’existaient pas (ne font pas partie de l’agrégat).

Pour plus d’informations sur la .NULL. valeur et les fonctions décrites ci-dessus, recherchez des rubriques dans le fichier d’aide de Visual FoxPro.