Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
M.var=bof() or eof() or m.var WHAT???
Message
De
16/07/2001 13:03:47
 
 
À
16/07/2001 12:13:41
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
00530035
Message ID:
00531084
Vues:
19
>>I'm not sure about using parentheses, I've been told by Microsoft support that they can affect how code works.
>>
>>Some years ago, I had a problem with Foxpro 2.5 and an SQL select returning unexpected results, after several calls, one support engineer asked to see a copy of the code, which was in the form :
>>
>>select ..... where (a=b) AND (c=d) AND (e=f)
>>
>>he asked me why the parentheses were there - so I told him to aid readability - & in all seriousness he told me that they weren't necessary & if I removed them then the select would work correctly.
>>
>>(At that point, I was actually desperate enough to try & of course it didn't work. Since then I've been very dubious about the quality of MS tech support.)
>
>I am a big fan of parentheses. I do believe that not only can it afford better readability in a particularly complex logical evaluation, it is also a clean and sure way to force or obtain a logical evaluation in a particular order.
>
>For example take the expression where d and e are actually equal values, and a, b, and c are discrete and different from d
>
>IF a=b AND b=c OR d=e
>
>if my memory serves me, VFP will evaluate the expression left to right and the result will be TRUE. If we place a parentheses thus,
>
>IF (a=b AND b=c) OR d=e, the result will be TRUE again. However, if we shift the parentheses, and consider a=b AND (b=c OR d=e), the result is FALSE.
>
>Len, in your example with 2 AND's, a bracket will make no difference to the outcome.

Now there goes another one taking me seriously - I prefer brackets/parantheses & would go a little further than you
IF ((a=b) AND (b=c)) OR (d=e)
etc - removes any doubt about how the AND applies - for example
IF a = b AND c
is that
IF a = (b AND c)
or
IF (a=b) AND c
I use them in all places where there is even the slightest hint of ambiguity, despite the advice from Microsoft Support.
Len Speed
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform