Последовательность сортировки индекса базы данных Advantage

Я конвертирую программу Delphi из BDE в базу данных Advantage.

По выходным я работаю на машине с Win 7, используя Delphi XE. В течение недели я работаю на машине с Win XP, используя Delphi 7.

Таблицы Advantage отлично работают на машине с Win 7, но при копировании на машину XP к ним нельзя получить доступ - Error 5175 the index was created with a different collation sequence

Я искал в сети, даже заходил на форумы Advantage, но не нашел ничего полезного.

XP и Win 7 настроены одинаково в отношении местоположения и т. Д. В свойствах таблицы последовательность сопоставления указана как пустая.

Кто-нибудь знает, что вызывает это и как исправить. Я пытался удалить и воссоздать индексы, но безрезультатно.


person Graham Saint    schedule 28.02.2013    source источник
comment
Немного поторопился. Если вы попытаетесь открыть таблицу Advantage Data Architect, а не просто проверить ее свойства, он предложит вам вариант переиндексации, который, кажется, исправляет ситуацию. Так что у меня есть обходной путь. Я все еще хотел бы знать, в чем проблема.   -  person Graham Saint    schedule 28.02.2013


Ответы (1)


Последовательность сопоставления, используемая для создания или открытия индексных файлов, зависит от того, какая последовательность сопоставления настроена для remote server или local server, к которым вы подключаетесь.

Для Advantage Local Server (ALS) это можно установить в конфигурационном файле adslocal.cfg.

Выделенный Advantage Database Server (ADS) необходимо переустановить, чтобы изменить сопоставление, поскольку установщик «запекает» сопоставление в исполняемый файл сервера (по крайней мере, насколько я знаю).

В дополнение к этому сопоставление отличается для разных версий ОС и языков ОС, если вы выбираете <CURRENT SYSTEM LANGUAGE> (или аналогичный) при установке компонентов ADS. Это описано в справке:

  1. Настоятельно рекомендуется использовать первый вариант, поскольку это более простой способ убедиться, что языки сортировки ANSI одинаковы для всех подключений. В частности, выберите язык сопоставления ANSI при установке сервера баз данных Advantage и клиентов Advantage. Обязательно укажите один и тот же язык ANSI для всех установок. Язык сопоставления ANSI, выбранный во время установки клиента Advantage, будет помещен в файл конфигурации локального сервера Advantage, ADSLOCAL.CFG.
  2. Если вы не хотите использовать вариант 1 выше, выберите язык сопоставления ANSI при установке сервера баз данных Advantage и клиентов Advantage. Выбирайте, только если все нижеперечисленное верно. На всех компьютерах, используемых для установки Advantage Database Server, должна быть установлена ​​одна и та же операционная система Windows. Компьютер, на котором запущено приложение, которое подключается к локальному серверу Advantage, также должен работать под управлением этой же операционной системы. В дополнение к одинаковым операционным системам все компьютеры должны использовать один и тот же язык сопоставления ANSI (который указывается с помощью значка «Региональные настройки»).

http://devzone.advantagedatabase.com/dz/webhelp/advantage10/master_avoiding_ansi_collation_mismatch_errors.htm

http://devzone.advantagedatabase.com/dz/webhelp/advantage10/index.html?error_5175_ae_index_collation_mismatch.htm

person Jens Mühlenhoff    schedule 28.02.2013
comment
Привет Йенс. Извините, я должен был упомянуть его локальный сервер. Это означает, что adslocal.cfg отличается на двух машинах. Я не могу проверить это прямо сейчас, так как я не могу получить доступ к коробке Win 7, но я проверю это на выходных. Непонятно (по крайней мере мне), почему они должны быть разными. На обоих была запущена одна и та же программа установки. - person Graham Saint; 28.02.2013
comment
@GrahamSaint Какое сопоставление вы выбрали во время установки? Проблема в том, что если вы выберете текущую сортировку системы, она будет различаться между версиями ОС и языками ОС... Поэтому вы должны обязательно использовать явную сортировку. - person Jens Mühlenhoff; 28.02.2013
comment
Привет, Йенс, файлы adslocal.cfg идентичны на обеих машинах. Я просто принял значения по умолчанию при установке, но, видимо, они работают по-разному в Win 7 и XP. Похоже, что установка Win 7 достаточно умна, чтобы знать, что у меня австралийская клавиатура, тогда как XP просто видит, что у меня английская клавиатура, и предполагает американскую. Когда у меня будет время, я проверю это, удалив и переустановив. Спасибо всем кто ответил. - person Graham Saint; 07.03.2013
comment
@GrahamSaint Пожалуйста. Сопоставления различаются между версиями ОС (например, XP и 7), когда вы выбираете <CURRENT SYSTEM LANGUAGE> во время установки. Я добавил цитату с соответствующей документацией в свой ответ. - person Jens Mühlenhoff; 07.03.2013