Греческие буквы с дыханием (греческий расширенный Unicode регион 1F00-1FFF) не сопоставляются в Access - PullRequest
1 голос
/ 07 марта 2019

Существует таблица Access с греческими словами, которые содержат буквы с дыханием и акцентами, те символы, которые относятся к диапазонам Unicode 'Greek and Coptic' (0300-0370) и 'Greek Extended' (1F00-1FFF).

Проблема в том, что во всех сравнениях буквы этого более высокого диапазона (греческий расширенный) вообще не учитываются, как если бы они отсутствовали. Письма с отметками дыхания (ἀ, ἐ, ὑ, ὦ и т. Д.) Попадают в эту область.

Например, запрос для ἄρχομαι (выберите * из grc, где лемма = 'ἄρχομαι') возвращает как ἄρχομαι и ἔρχομαι, так и ρχομαι.

Предположим, что в таблице есть αὐγής, но нет ἀαγής (обратите внимание на дыхание). При запросе ἀαγής в качестве результата возвращается αὐγής, поскольку буквы ὐ и ἀ не сопоставляются, как если бы двигатель искал «αγής».

Но этого можно избежать с помощью функции strcomp, которая делает сравнение точным. Проблема в том, что когда в этом столбце есть уникальный индекс, вы не можете вставить много слов, которые считаются повторяющимися, потому что расширенные греческие символы игнорируются. Есть и другие случаи, когда требуется правильная сортировка.

Чтобы воспроизвести проблему, создайте уникальный индекс для столбца Unicode и посмотрите, можете ли вы вставить в него как ἄρχομαι и ἔρχομαι, так и оба αὐγής и ἀαγής.

Я использую не Access, а драйвер ODBC Access Runtime 2016 и работаю с VBScript, источником базы данных является простой файл .mdb.

Некоторые говорят, что можно установить параметры сортировки для каждой базы данных (http://www.utteraccess.com/forum/Collate-Access-t1940463.html). Но как это сделать? Прежде чем прибегнуть к удалению уникального индекса или обновлению до SQL Server?

Спасибо!

...