Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SET ANSI confusion
Message
From
06/12/2005 10:18:36
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows XP SP1
Miscellaneous
Thread ID:
01075265
Message ID:
01075312
Views:
19
Still confused. I was referring to uses of "=" within SELECT statements. I had a statement that looked like:

Select * from Mytable left join PartTable on MyTable.part = PartTable.part

Doing this, I got multiple records when I had entries like "KP3 ", "KP31 ", "KP32 " in PartTable. Is this controlled by SET ANSI or SET EXACT? The documentation states:

Unlike SET ANSI, SET EXACT does not apply to Visual FoxPro SQL commands. For more information, see SET ANSI Command.

Thanks


>>I have just learned, much to my chagrin, about SET ANSI ON. Having learned about its existence, I want to make sure I get it right ...
>>
>>It appears that when using '=' within a SELECT statement and SET ANSI OFF, the trailing spaces are ignored, and the comparison is only made up to the length of the shortest string. This "KP3 " = "KP31 ", even though normal VFP string comparison doesn't work this way.

>
>The trailing blanks are not ignored whith SET ANSI OFF so "KP3 " will not equal to "KP31 "
>The string comparison is controlled by SET EXACT. By default it set to OFF in which case comparison is performed to the length of the string on the right.
>
>
>>However, setting SET ANSI ON will compare the strings to their entire lengths, so such mis-matches do not occur. Is this correct? Is there any other effect of SET ANSI ON?
>
>Almost. The shorter string will be padded with spaces to the lenght of the longer one before comparison.
Jim Nelson
Newbury Park, CA
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform