>>>Hi,
>>>
>>>I ran into a problem today that was caused by the fact that in one of the form's LOAD method there was SET EXACT ON. So I started checking further and found that a few other forms have SET EXACT ON in the LOAD. I am not going to ask why I put this code there <g> (who knows). But in general do you recommend never to have SET EXACT ON as global setting (in LOAD) and only set it ON in places where it is necessary and then reset it back to OFF?
>>
>>It doesn't answer your question, but I can't recall ever using SET EXACT ON. I always use the == operator when I need an exact match.
>>
>>In general, if you're doing something "unusual" you want to minimize the amount of time it's in effect e.g.
>>
>>lcOldSetExact = SET( "EXACT " )
>>SET EXACT ON
>>
>>* Stuff that requires SET EXACT ON goes here
>>
>>SET EXACT &lcOldSetExact
>>
>>That said, SET EXACT is scoped to a datasession. So, if your form uses its own datasession, when you close it the SET EXACT no longer has any effect. If it's OK for SET EXACT to be ON for the duration of the form, it might be OK to leave it in the .Load.
>
>Thank you. Everything you stated makes sense. The only place, I can think of, that I would need to SET EXACT ON is where I need to use SEEK() on exact value.
I don't use SEEK much anymore, I've mainly converted to using SQL commands. When I do use SEEK I make sure I never SEEK on a string that is less than the length of the key (right-pad if necessary), and I also make sure my key expressions don't have trailing spaces (so I don't have to right-pad in the first place).
Regards. Al
"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov
Neither a despot, nor a doormat, be
Every app wants to be a database app when it grows up