> Data > Beaucoup d’ADO pour rien

Beaucoup d’ADO pour rien

Data - Par iTPro.fr - Publié le 24 juin 2010
email

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 gratuitement cette ressource

Comment cerner la maturité digitale de votre entreprise ?

Comment cerner la maturité digitale de votre entreprise ?

Conçu pour les directions IT et Métiers, ce guide vous permettra d'évaluer précisément vos processus de communication client, d'identifier vos lacunes et points d'inflexion pour établir un plan d’actions capable de soutenir durablement votre évolution. Bénéficiez maintenant d'une feuille de route complète.

Data - Par iTPro.fr - Publié le 24 juin 2010