Данная команда определяет Правило Сопоставления символьных выражений в различных операторах индексирования и сортировки данных.
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
"Уникально взвешенный"
Примечание
Когда Вы определяете опцию SPANISH, то: символы "ch" - являются единственными, размещаемыми между "c" и "d", а также "ll" - размещается между последовательностями "l" и "m". При определении правила сопоставления в данной команде не забывайте указывать параметр в кавычках, как показано в следующем примере:
Копировать Код
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, разместите там следующую строку:
Копировать Код
COLLATE = cSequenceName
Что соответствует следующей команде:
Копировать Код
SET COLLATE TO cSequenceName
Комментарии
Команда 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:
![]() | |
---|---|
CODEPAGE = 1250 |
Информацию о поддержке национальных кодовых страниц см. в разделах: Поддерживаемые Кодовые страницы в Visual FoxPro , и Разработка интернациональных Приложений.
Информацию о настройке системы Visual FoxPro см. дополнительно в разделах: Настройка среды системы Visual FoxPro , и Специальные параметры файлов конфигурации.
См. также
Описание
IDXCOLLATE( ), функцияSET DATASESSION, команда
Кодовые страницы, поддерживаемые в Visual FoxPro
Специальные параметры в файле конфигурации
SYS(2300) - добавить или исключить Кодовую страницу (Code Page)
CREATE TABLE - SQL, команда
ALTER TABLE - SQL, команда
INDEX, команда
Общее описание команд SET