Данная команда определяет Правило Сопоставления символьных выражений в различных операторах индексирования и сортировки данных.

SET COLLATE TO cSequenceName

Параметры

cSequenceName

Определяет правило сопоставления. В следующей таблице представлены допустимые значения данного параметра.

cSequenceName Национальный язык

ARABIC

Арабский

CZECH

Чешский

DUTCH

Датский

GENERAL

Английский, Французский, Немецкий, Испанский - современный, Португальский, и другие языки Западной Европы

GERMAN

Немецкий  (DIN)

GREEK

Греческий

HEBREW

Еврейский

HUNGARY

Венгерский

ICELAND

Исландский

JAPANESE

Японский

KOREAN

Корейский

MACHINE

Машинный (принятый "по-умолчанию" для младших версий FoxPro)

NORDAN

Норвежский, Датский

PINYIN

Китайский, упрощенный

POLISH

Польский

RUSSIAN

Русский

SLOVAK

Словацкий

SPANISH

Испанский, традиционный

STROKE

Китайский, упрощенный и традиционный

SWEFIN

Шведский, Финский

THAI

Тайский

TURKISH

Турецкий

UNIQWT

"Уникально взвешенный"

NoteПримечание

Когда Вы определяете опцию SPANISH, то: символы "ch" - являются единственными, размещаемыми между "c" и "d", а также "ll" - размещается между последовательностями "l" и "m". При определении правила сопоставления в данной команде не забывайте указывать параметр в кавычках, как показано в следующем примере:

  CopyCode imageКопировать Код
SET COLLATE TO "SWEFIN"

Правило сопоставления типа MACHINE является правилом "по-умолчанию", с которым пользователи FoxPro давно уже знакомы. В этом случае символьные последовательности сортируются в порядке их размещения в текущей Кодовой странице (code page). Правило MACHINE обеспечивает наилучшую производительность при работе с индексными файлами. Использование другого правила сопоставления, отличного от MACHINE, может значительно замедлить работу Приложения, активно работающего с индексными файлами, созданными с использованием установленного правила сопоставления. 

Правило GENERAL является предпочтительным для пользователей U.S. и стран Западной Европы. Символьные последовательности сортируются в этом случае согласно размещению их в текущей Кодовой Странице. Для версий FoxPro, меньше чем2.5, при создании индексов нужно было использовать функции UPPER( ) или LOWER( ) для выравнивания символьных последовательностей. В версиях FoxPro, старших 2.5, Вы можете указать правило GENERAL, и не использовать преобразование функцией UPPER( ) для символьных полей.

При задании правила сопоставления, отличного от MACHINE, независимые индексные файлы (.idx), всегда создаются как компактные (compact) файлы .idx.

Функция SET("COLLATE") - возвращает текущее правило сопоставления символьных строк при сортировке.

Для задания необходимого правила сопоставления в конфигурационных файлах Visual FoxPro, разместите там следующую строку:

  CopyCode imageКопировать Код
COLLATE = cSequenceName

Что соответствует следующей команде:

  CopyCode imageКопировать Код
SET COLLATE TO cSequenceName

Expand imageКомментарии

Команда SET COLLATE обеспечивает вас механизмом создания индексных файлов для сортировки таблиц, содержащих "акцентированные" национальные символы, участвующие в индексировании. Действие команды SET COLLATE не распространяется на индексные файлы, созданные ранее, без использования необходимой установки правила сопоставления (collating sequence). Visual FoxPro автоматически поддерживает  использование нескольких индексных файлов, созданных для одной Таблицы данных, при чем - в разное время, при разных правилах сопоставления.

Например, если ранее, при создании индексного файла использовалась установка SET COLLATE TO GENERAL,  а позднее была выполнена команда SET COLLATE to SPANISH, то зозданный индексный файл будет работать по правилу сопоставления GENERAL.

Действие команды SET COLLATE распространяется на ткущую сессию данных (current data session).

При использовании команды SET COLLATE TO, Вы можете получить следующее системное Сообщение: "Правило Сопоставления <sequencename> - не найдено." Это происходит в том случае, когда установленное правило сопоставления не поддерживается текущей кодовой страницей. Для предотвращения появления данной ошибки нужно указать необходимую кодовую страницу в конфигурационном файле Visual FoxPro. Например, будет выдано сообщение "Правило сопоставления 'CZECH' - не найдено", при попытке выполнить команду SET COLLATE TO 'CZECH'. Для использования установки указанного правила, как Czech, разместите в файле конфигурации config.fpw следующую строку, и перезапустите систему Visual FoxPro:

  CopyCode imageКопировать Код
CODEPAGE = 1250

Информацию о поддержке национальных кодовых страниц см. в разделах: Поддерживаемые Кодовые страницы в Visual FoxPro , и Разработка интернациональных Приложений.

Информацию о настройке системы Visual FoxPro см. дополнительно в разделах: Настройка среды системы Visual FoxPro , и Специальные параметры файлов конфигурации.

Expand imageСм. также