PowerBuilder NULLE et Vide variable
Je suis en utilisant PowerBuilder et ont un problème avec la condition if. Je veux vérifier si une variable n'est pas nulle ou elle n'est pas vide.
Alors d'abord j'ai suivantes si la condition pour tester si la variable est null ou pas:
IF IsNull(ls_name) THEN
messagebox("ls_name", "is null") //true
else
messagebox("ls_name", "is not null")
end if
De la condition ci-dessus, je sais que ls_name est null. Maintenant, je test si son vide ou pas:
if ls_name = "" then
messagebox ("ls_name", "is empty")
else
messagebox("ls_name", "is not empty") //true
end if
Et je reçois que ls_name n'est pas vide.
Maintenant quand j'utilise une condition if pour vérifier si ls_name n'est PAS la valeur Null ou n'est PAS vide, j'ai mis la suivante si la condition:
IF not IsNull(ls_name) or ls_name <> "" THEN
messagebox("test", "condition true")
else
messagebox("test", "condition false") //this becomes true.
end if
Il va à la partie de la condition. Ne pas le si une partie de devenir un véritable? Suis-je écrire la condition si mal?
Vous devez vous connecter pour publier un commentaire.
De penser à "null" comme "inconnu" a toujours réussi à me faire par de dans la compréhension de comment les expressions évaluées.
Donc, quand ls_name est null,
évalue à
ou
Bien, pour l'un OU pour évaluer VRAI, au moins une condition doit être VRAI. Ça ne s'applique pas dans ce cas.
La façon dont j'ai l'habitude de test est la suivante:
qui, lorsque ls_name est null, décide de
puis
et
En d'autres termes, la variable est "vide".
Bonne chance,
Terry
Méfiez-vous des PB manière pour les tests
if
conditions et le comportement null:if
Donc dans votre cas, il est probable que, lorsque ls_name est null, la
not IsNull(ls_name)
évalue à true, maisls_name <> ""
devient nulle, donctrue or null
devient nulle et vous toujours à laelse
partie.Je voudrais vérifier en 2 temps :
Si vous avez besoin pour gérer le même code pour pas vide /pas null, alors que vous auriez à utiliser une sorte de drapeau booléen. J'ai aussi commencé à utiliser l'
goto
déclaration qui est très pratique lorsque vous traitez avec imbriquéif
déclaration.(BTW : NON,
goto
- lorsqu'il est utilisé avec soin, n'est pas mal ;o)goto
d'utilisation, mais juste pour dire, nous avons un très élaboré applications qui sont actuellement dans 11.5 classique et serait probablement mise à niveau à 12,5 classique, mais de ne jamais .NET en raison de notre coutume PBNI extensions. Qui aurait besoin d'un notable effort de réécrire et que les efforts ne sera probablement jamais être prévu par la société cerveaux... je n'étais pas conscient .NET ne fournit pas de goto, mais nous ne l'utiliser avec soin en C ou PB essentiellement pour le nettoyage de fin de traitement d'erreur et il est en fait très utile. Java ne sont pas aussi (même si un goto opcode n'existe pas de toute façon)...Meilleure technique que j'utilise pour mes programmes sont
j'ai toujours set null cordes à vide des espaces de vérifier ensuite si les cordes sont vides.. ça dépend aussi de la scénario, vous exécutez