Команды для символьных данных в VFP
« Назад Рассматриваются команды SET ANSI, SET COLLATE и SET EXACT. Установки, задаваемые этими командами, можно изменять на вкладке Data диалогового окна Options меню Tools. Команда SET COLLATE TO cSequenceNameзадает последовательность сравнения символьных полей при индексировании и сортировке таблиц. Параметр: cSequenceName – последовательность сравнения; может принимать в том числе значения "MACHINE" (по умолчанию), "GENERAL" и "RUSSIAN". Если SET COLLATE отличается от "MACHINE" и если создается IDX-файл, то он всегда будет компактным. Collate-последовательность можно установить в файле конфигурации, задав COLLATE = cSequenceNameИзменение установки SET COLLATE не влияет на collate-последовательность ранее открытых индексов. Создаваемые индексы автоматически настраиваются VFP в соответствии с установленной collate-последовательностью. Если не соблюдается соответствие между кодовой страницей и cSequenceName, то возникнет ошибка "Collating sequence <cSequenceName> is not found." Так, set collate to "RUSSIAN" можно задавать, если текущей является 1251 (Russian Windows) кодовая страница. В то же время при работе с такой кодовой страницей нельзя задать set collate to "GENERAL" Замечание. При создании приложений, использующих символы русского алфавита, надлежащий порядок сравнения, индексирования и сортировки символьных данных обеспечивается при задании set collate to "MACHINE" && Действует по умолчанию Установка SET COLLATE сохраняется с текущей сессией данных. Команда SET EXACT ON | OFFзадает правила сравнения двух строк и двоичных данных разной длины. На результат операции "==" установка SET EXACT влияния не оказывает. Опции: ON – строки равны (двоичные величины), если при посимвольном (побайтном) сравнении обнаружено равенство всех символов (байтов). Длины сравниваемых строк (двоичных величин) выравниваются за счет добавления пробелов (нулевых байтов) к более короткой строке (двоичной величине). OFF – (по умолчанию) строки (двоичные величины) равны, если при посимвольном (побайтном) сравнении все символы (байты) правого операнды равны соответствующим символам (байтам) левого. Длины сравниваемых строк не изменяются. Различные ситуации, возникающие при сравнении, рассмотрены в табл. 3.24. Таблица 3.24
Примеры влияния SET EXACT на результат сравнения
Установка SET EXACT сохраняется с текущей сессией данных. |