par William Vaughn - Mis en ligne le 17/03/2004
Parmi les moyens que les développeurs
désirent le plus, on trouve une
manière éprouvée de déterminer les
meilleurs moyens pour tester et établir
des valeurs NULL dans leurs applications
- quel que soit leur langage.Par
exemple, quand ils doivent signifier
que les dates DateShipped et Date-
Died ont été atteintes et ne sont pas
connues, la plupart des développeurs
de bases de données relationnelles
doivent définir ces données et d'autres
colonnes de données similaires pour
permettre des valeurs NULL. A noter
qu'une valeur NULL dans une colonne
de données n'est pas la même chose
qu'une chaîne vide ou NULL ou tout
autre occupant qui peut servir à montrer
que la valeur n'est pas connue. Le
langage que vous utilisez peut traiter
une chaîne vide ou une valeur placeholder
(comme Unknown) comme
une chaîne ou une valeur valide et
peut stocker un NULL comme une valeur
« connue » dans la base de données.
Le concept de l'état NULL existe
dans les bases de données relationnelles
depuis leur création et les NULL
ont toujours suscité un traitement spécial.
Sans trop m'étendre sur la pertinence
qu'il y a à utiliser des NULL, j'estime
que NULL est un meilleur
placeholder que BHOM (Beats the
Hell Out of Me) que j'utilisais quand
j'enseignais la programmation dans
l'armée US.
En ADO classique, les développeurs
sont confrontés à des valeurs
NULL parce qu'ils ne peuvent pas attribuer
un NULL à une variable numérique,
une chaîne, la propriété Value
d'un contrôle TextBox, ou tout
contrôle qui n'accepte un type de données
variant (que l'on peut mettre à
NULL). Si l'on oublie de traiter les valeurs
NULL et si l'on essaie d'attribuer
un NULL à un contrôle TextBox, Visual
Basic (VB) 6.0 émet un message d'erreur
Invalid Use of NULL (94). Mais
ADO.NET et Visual Basic .NET prennent
mieux en charge les valeurs NULL.
Quand on travaille avec le CLR
(Common Language Runtime) et les
langages .NET, ADO.NET permet de
stocker, de définir, et de tester des valeurs
NULL de diverses manières -
beaucoup plus qu'avec ADO classique.
Cet article utilise Visual Basic .NET
pour présenter la façon dont ADO.NET
et Visual Basic .NET traitent la valeur
NULL.
Beaucoup d’ADO pour rien
En VB 6.0, si un champ est susceptible
de contenir une valeur NULL qui résultera
en une erreur Invalid Use of NULL,
vous pouvez court-circuiter le problème
en concaténant une chaîne vide
à la donnée Field.Value provenant du
Recordset pour la propriété Text-
Box.Text d’affichage de la manière suivante
:
txtDateSold.Text =
rsMyData(« DateSold ») & « »
Cette approche convertit les valeurs
NULL en une chaîne vide que
l’utilisateur ne voit pas. Si la TextBox
est un contrôle « bound », cette chaîne
vide (qui représente une valeur NULL)
est écrite dans la base de données en
tant que chaîne vide, sauf si l’on ajoute
du code pour reconvertir la valeur en
un NULL – c’est d’ailleurs obligatoire si
le type de données des colonnes de la
base de données n’est pas un varchar
ou char. Concaténer une chaîne vide
marche aussi en Visual Basic .NET, mais
l’utilisateur ne peut toujours pas dire la
différence entre une TextBox vide et
une qui reflète une valeur NULL de la
base de données – et on doit encore
ajouter du code pour convertir la
chaîne vide et poster une valeur NULL
dans la base de données.
Le moyen le plus simple de tester
une valeur NULL en VB 6.0 est de tester
le mot-clé Null, comme le montre le
code suivant :
If Not rs(0) = Null Then
Text1.Text = rs(0)
Else
Text1.Text = «
End If
On peut aussi tester des valeurs
NULL en VB 6.0 en utilisant la fonction
IsNull(), comme le montre le code suivant
:
If IsNull(rs(« DateShipped »)) Then
txtDateShipped.Text =
«
Else
txtDateShipped.Text =
rs(« DateShipped »)
End If
Toutefois, cette méthode est un
peu plus longue à coder et à exécuter
parce qu’elle utilise le « late binding ».
La fonction IsNull() de VB 6.0 correspond
à la fonction IsDBNull() de Visual
Basic .NET, que nous verrons plus loin.
Téléchargez cette ressource
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
- Stockage autonome, Evolutivité & Gestion intelligente, Pure Storage offre de nouvelles perspectives aux entreprises
- Intelligence Artificielle : DeepKube sécurise en profondeur les données des entreprises
- Dark Web : où sont vos données dérobées ?
- Databricks lève 1 milliard de dollars !
- La blockchain en pratique
Les plus consultés sur iTPro.fr
- IA : ne déléguez pas votre cœur de métier à une boîte noire
- Identité de l’IA : 4 priorités pour anticiper plutôt que subir la régulation
- Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
- Cybermalveillance : 2025, seuil franchi pour les victimes comme pour les cybercriminels
Articles les + lus
Redéfinir la confiance à l’ère de l’IA agentique : les entreprises sont-elles prêtes pour le SOC autonome ?
Les défaillances des pipelines de données pèsent lourdement sur la performance des grandes entreprises
Les nouvelles menaces liées à l’IA obligent les entreprises à dépasser la seule stratégie de sauvegarde
Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
Construire la souveraineté numérique en Europe grâce à un écosystème ouvert et collaboratif
À la une de la chaîne Data
- Redéfinir la confiance à l’ère de l’IA agentique : les entreprises sont-elles prêtes pour le SOC autonome ?
- Les défaillances des pipelines de données pèsent lourdement sur la performance des grandes entreprises
- Les nouvelles menaces liées à l’IA obligent les entreprises à dépasser la seule stratégie de sauvegarde
- Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
- Construire la souveraineté numérique en Europe grâce à un écosystème ouvert et collaboratif
