Specifies whether to pad a shorter string with spaces when making a SQL string comparison or binary expression with zero (0) bytes when making a binary expression comparison in SQL commands using the equal sign operator (=).

Примечание:
В OLE DB провайдере Visual FoxPro, Вы не можете использовать в запросах величины в формате ANSI , однако команда SET ANSI поддерживается.

SET ANSI ON | OFF

Параметры

ON

Короткие символьные строки дополняются справа пробелами или нуль-символами (0) для уравнивания их с более длинными символьными строками или выражениями. Когда SET ANSI установлено в ON,  обе сравниваемые символьные строки должны иметь одинаковую длину.
OFF

(По-умолчанию) Определяет, что короткие символьные строки не дополняются справа пробелами или нуль-символами (0) в целях уравнивания длин сравниваемых строк. Когда SET ANSI установлено в OFF,  две символьные строки сравниваются символ за символом по достижению конца короткой строки.

Комментарии

Команда SET ANSI не эффективна при указании "двойного" сравнивания, оператор (= =). Когда Вы указываете данный оператор сравнения  = = , короткая строка всегда дополняется справа пробелами или нуль-символом (до длины большей строки). Для дополнительной информации см. раздел Реляционные операторы.

Команда SET ANSI действует только в текущей рабочей сессии.

SET ANSI и Дизайнер Запросов Visual FoxPro выстраивают команды SELECT - SQL в Дизайнере Запросов  . При использовании Вами  конструкций Join и Filter, для операторов сравнения Equal или Exactly Like , используются соответствующие операторы = или = =  в командах SELECT-SQL. Соответствующая установка Команды SET ANSI может повлиять на результат выполнения запроса. 

Порядок строк.   В командах SELECT-SQL порядок строк при сортировке не зависит от использования указанных операторов сравнения: 
 = или = = .

Пример

В следующем примере, когда  SET ANSI установлено в ON,  результатом будет False (.F.), потому , что при уравнивании строк до одинаковой длины их значения остаются различными:

  Копировать Код
'Tommy' = 'Tom' 

Опрератор = =  (двойного сравнения) используется в SELECT-SQL командах.

В следующем примере, когда SET ANSI установлено в  ON,  результатом будет True (.T.), потому, что сравнение завершается на  'Tom':

  Копировать Код
'Tommy' = 'Tom'

См. также