It's not a bug but documented behavior. See
String comparison in VFP>Some old code I maintain, behaves differently in VFP9SP2 than in earlier versions. I know that this code is not recommended, but I didn't write it...! Try the following:
>Select * from yourtable where upper(alltrim(yourfield))='A'
>Note that VFP9SP2 will also select all the records where yourfield is empty!!! This must be a bug?
>
>Update: Further investigation reveals that I get the same result in VFP8. This means that these two code segments behave differently
>Select * from yourtable where upper(alltrim(yourfield))='A'
Use yourtable
>Browse for upper(alltrim(yourfield))='A'
>In all cases I have Set exact OFF and Set ansi OFF.
--sb--