Если вы разрабатываете интернациональные приложения, то вам может понадобиться управлять схемой упорядочения ваших данных для оптимальной работы приложения. В этом разделе обсуждается:

Эффективное применение схемы упорядочения

Если ваши данные не включает диактирические знаки, такие, например, как ударения () или умляуты (), то вы можете улучшить выполнение приложения, если примените машинную схему упорядочения, поскольку:

  • Не-машинные индексные ключи в два раза больше, поскольку они содержат диакритическую информацию.

  • Не-машинное упорядочение использует много специальных правил для индексирования символов для того, чтобы возвратить соответствующие результаты.

Поскольку машинная схема упорядочения является более быстрой, ей обычно отдают предпочтение в операциях соединения и поиска, тогда как другие схемы упорядочения применяются для упорядочения записей.

Когда Вы создаете индекс, Visual FoxPro использует текущую схему упорядочения, установленную с помощью команд SET COLLATE, CREATE TABLE - SQL, ALTER TABLE - SQL или INDEX. Например, если вы хотите создать два индекса с двумя схемами упорядочения, то можете применить команду SET COLLATE как показано в следующем примере:

  Копировать код
SET COLLATE TO "MACHINE"
INDEX ON lastname TAG _lastname && Индекс для соединения или поиска
SET COLLATE TO "GENERAL"
INDEX ON lastname TAG lastname && Индекс для сортировки

Если вы хотите вести поиск, выборку или соединение по полю lastname, то выдайте команду SET COLLATE TO "MACHINE" перед этими операциями. Оптимизация запросов Rushmore использует индексы, созданные в машинной схеме упорядочения, и операция поиска будет выполнена очень быстро.

Применение SQL SELECT со сложной схемой упорядочения

Когда вы выдаете команду SELECT - SQL, Visual FoxPro применяет текущую схему упорядочения для операций поиска и для предложений ORDER BY и GROUP BY. Если вы хотите искать и сортировать с использованием различных схем упорядочения, то можете разделить ваши команды SQL на две следующим образом:

  Копировать код
* Выборка записей с использованием одной схемы упорядочения
SET COLLATE TO "MACHINE"
SELECT * FROM table INTO CURSOR temp1 ;
WHERE lname = "Mller"
* Упорядочение записей с использованием другой схемы упорядочения
SET COLLATE TO "GENERAL"
SELECT * FROM temp1 INTO TABLE output ORDER BY lastname

См. также