set ansi 命令

请参阅

确定 Visual FoxPro SQL 命令中如何用操作符 = 对不同长度字符串进行比较。

语法

SET ANSI ON | OFF

参数 
ON

在较短的字符串后面加入空格以使它与较长的字符串具有相同的长度。然后,对两个字符串的每个字符进行一个字符与一个字符的比较。比如下面的比较:

'Tommy' = 'Tom' 


如果 SET ANSI 设置为 ON,则上述比较结果为“假”(.F.)。这是因为在‘Tom’中加入空格后成了‘Tom ’,而字符串‘Tom ’与字符‘Tommy’并不每个对应的字符都相等。
操作符 == 也使用这种方法在 Visual FoxPro SQL 命令中比较字符串。

OFF

指定较短的字符串不要填充空格。两个字符串比较到较短的字符串结束就可以了。比如下面的比较:

'Tommy' = 'Tom'


如果 SET ANSI 设置为 OFF,上述比较结果为“真”(.T.)。这是因为比较完字符串‘Tom’后便不再继续比较了。

说明

set ansi 命令决定进行 SQL 字符串比较时是否在两个字符串中较短的一个后面加上空格。SET ANSI 对操作符 == 没有任何影响。当使用操作符 == 时,较短的字符串总是在其后加上空格后再进行比较的。
SET ANSI 的作用域是当前数据工作期。

set ansi 命令与查询设计器


当创建查询时,Visual FoxPro 在查询设计器中建立一个 SELECT - SQL 命令。当创建连接和筛选条件时,如果选择了 Equal 或 Exactly Like 选项的话,操作符 = 或 == 包括在产生的 SELECT 命令中。SET ANSI 设置会影响在查询设计器中创建和执行的查询结果。

字符串顺序

在 SQL 命令中,两个字符串在比较中左右顺序是没有关系的。把字符串从操作符 = 或 == 的一边移到另一边不影响比较的结果。