powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с индексами по текстовым полям
17 сообщений из 17, страница 1 из 1
Проблема с индексами по текстовым полям
    #32175984
Zrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zrw
Гость
Имеется такая проблема, которая пока не нашла разумного решения.
Итак:
Имеется база данных в виде одной таблицы со сведениями о людях (типа картотеки). Для работы с ней написана форма, содержащая, среди прочего, два основных элемента: поле ввода и список. При каждом вводе символа в поле (оператор набирает первые буквы фамилии человека, которого ищет) источник данных для списка подходящих записей обновляется по запросу:
Код: plaintext
 "SELECT * FROM People WHERE (FamilyName LIKE "  & me.Fam &  "*);" 

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

Для ускорения поиска разумным шагом представляется введение индексирования в таблице по полю FamilyName, но тут и начинается проблема: если фамилия начинается с некоторых букв русского алфавита, например "Г" и еще 4-5 из всего алфавита, то запрос возвращает пустой набор (т.е. ничего), хотя записи точно есть в базе. Если индексирование отключить, то все начинает работать адекватно (но медленно). Если задать обратный (убывающий) порядок индекса, то все работает (но где гарнтии, что не выпадут другие буквы?).

Указанная проблема возникает при открытии базы данных в MS Access 2000. Открытие ее же в версии XP не вызывает подобной проблемы - там индексы работают правильно.

Вот, собственно, и вопрос: никто не сталкивался с такой проблемой и как ее решить, какую заплатку нужно поставить?
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32175996
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В Options есть порядок сортировки. Там выбирается язык. После изменения этого параметра надо сжать базу.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176099
Zrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zrw
Гость
Ставил порядок сортировки, не помогает. Стоит "универсальный", какой-либо иной применять кажется странным, не так ли? Врусской-то версии...

Да и проблема не в порядке сортировки - записи не неправильно отсортированы, а просто некоторые, начинающиеся с некоторых букв, не находятся вообще при включенном индексировании.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176118
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Стоит "универсальный", какой-либо иной применять кажется странным, не так ли? Врусской-то версии...

Если нужна поддержка языка, то универсальный не годится. При универсальном некоторые символы не считаются буквами.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176134
Zrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zrw
Гость
Интересно :-) тогда два вопроса.

Первый (любопытно): а какой порядок надо поставить для русского языка в русской версии офиса? (Русский или Кириллица - не предлагать - отсутствуют в списке и никогда их ни в одной версии не видел).

Второй (по существу): а почему при создании убывающего индекса все символы русского языка считаются буквами, а при обычном возрастающем вдруг 5 букв перестают считаться буквами? Почему они всегда считаются буквами в версии Office XP, а в 2000 не считаются? Почему они перестают считаться буквами при включении индексирования, а при отключенных индексах сортировка и выборка данных происходит нормально?

В общем, глюк это, все-так...
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176145
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Боюсь, что ответить не смогу. Но подозрительно, что кроме меня вообще никто ничего не отвечает. В любом случае, предлагаю попробовать поиграть с этим параметром.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176161
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здесь
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176168
Zrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zrw
Гость
А ссылка верна? Что-то она не работает ("Невозможно отобразить страницу...")
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176195
Zrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zrw
Гость
Нашел правильную ссылку, но решения-то там и нету :( А промлема описана моя. Был комп с Win98SE и Access 2000, потом проверял на компе с Win2000 и Access XP - на нем все работало. Выходит, какой-то компонент офиса или винды глючит. Вопрос в том, какой.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176268
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Вопрос в том, какой.
Вроде твое:
PRB: Overlocalized Sort Order Strings in Access/Jet ODBC Driver.Q279401
....
The Jet 4.0 ODBC driver incorrectly uses this localized list of sort orders to verify
sort languages while it creates a new database file. This means that applications
that use the CREATE_DB option with the SQLConfigDataSource ODBC function to
create new databases with a specific sort order will fail, unless the localized
version of the sort order language is provided.
...
To resolve this problem, obtain the latest service pack for Microsoft Data Access Components (MDAC) version 2.5.
...
This problem was corrected in MDAC 2.5 Service Pack 1 (SP1), which is also included with Microsoft Windows 2000 SP1

Так что бегом за свежим MDAC и заодно SP на JET неси.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176288
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ZRW
Первый (любопытно): а какой порядок надо поставить для русского языка в русской версии офиса? (Русский или Кириллица - не предлагать - отсутствуют в списке и никогда их ни в одной версии не видел).
Именно "Русский" и надо поставить. Как это отсутствуют в списке? Внимательнее ищи.

Почему они перестают считаться буквами при включении индексирования, а при отключенных индексах сортировка и выборка данных происходит нормально?
Потому что индекс есть сохраненное отношение порядка. Буквы не перестаются считаться буквами. Аксесу вобще пофиг, буква это, цифра или херня непонятная. Для него важен только относительный порядок символов. Если этот порядок есть готовый (индекс) - он и испольуется при поиске/фильтрации/сортировке. Если нет - определяется на лету.
Собственно разница в поведении - из-за разницы в механизмах определения порядка средствами SQL, VBA и индексов. Все они попарно различаются.
В случае индексов - порядок зависит от упомянутого параметра.
С случае SQL - пока сказать не могу.
В случае VBA - от параметра "Option Compare" в модулях или аргумента Compare в функции StrComp. И там и там есть значение "сравнение строк средствами базы" (Option Compare Database и vbDatabaseCompare). Если его использовать - то по идее должно сравнивать строки также как механизм построения индексов. Но это только в теории. На практике они отличаются. По крайней мере в 97-м аксесе.

Фу блин, аж писать устал.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176305
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лоху
>Именно "Русский" и надо поставить. Как это отсутствуют в списке? Внимательнее ищи

Лично у меня русского нет :) (Акес2000)
Стоит сейчас универсальный и все работает без каких-либо особых телодвижений. Правда сервис-паки стоят, и MDAC 2.5 SP1.
Но я уже про это писал.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176341
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну значит из 2000-го убрали. В 97-м есть.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176445
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сталкивался с энтим глюком и лично у меня все решилось заключением в квадратные скобки всех символов искомой строки, чем занималась соотв. функция.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176447
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сталкивался с энтим глюком и лично у меня все решилось заключением в квадратные скобки всех символов по отдельности в искомой строке, чем занималась соотв. функция. Все работало быстро...
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32176939
Zrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zrw
Гость
2All:
Спасибо, буду тестировать дальше. Обновлю MDAC. Сервис-паки для офиса ставил еще раньше все, без эффекта.
...
Рейтинг: 0 / 0
Проблема с индексами по текстовым полям
    #32178034
Zrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zrw
Гость
Помогла установка MDAC 2.7
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с индексами по текстовым полям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]