![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не срабатывает кейсоинсенситивность в tDataSet.Locate [D7, XP]
Семен Кевларвестов © (2008-11-05 02:28:00)Доброй ночи!
Есть некое приложение, в котором осуществляется поиск по открытому датасету методом Locate примерно так: TDataset.Locate('SomeField',SomeValue,[loCaseInsensitive, loPartialKey]). (При этом значение в SomeValue приводится к верхнему регистру, впрочем, это не важно т.к.к строкив датасете могут быть какие угодно). И вот такая загадочная вещь: если в строке есть буквы 'ч' или 'я' - не срабатывает кейсоинсенситивность.
Не подскажите ли, пожалуйста, как с этим можно бороться?
Johnmen (2008-11-09 01:12:00) [1]Единственный достоверный, не зависящий не от чего или кого способ, это самоличный проход по НД с необходимой проверкой. Медленнее ли он Локейта? Возможно, да. Но не более, чем на процентов 20...
Семен Кевларвестов (2008-11-09 00:41:00) [2]
> Германн © (06.11.08 02:48) [7]
>
> Уж сколько было на многих форумах примеров, но никто не
> смог выдать "решения с гарантией"!
эммм.. а можно хотя бы одну ссылку на подобную же проблему с хоть каким-то решением. В сетке искал, нашел на delphikindom две темы, но там ничего особенного нету.
> clickmaker © (06.11.08 12:58) [8]
>
> а если искать тупо перебором с AnsiStartsText, например?
>
так в конце концов и сделал, но не уверен что это правильно.
clickmaker (2008-11-06 12:58:00) [3]> как с этим можно бороться
а если искать тупо перебором с AnsiStartsText, например?
Германн (2008-11-06 02:48:00) [4]
> Я правильно понимаю, что если продолжать работать через
> BDE - решения нет? (Убрать его никто, естественно, не даст).
>
А Х.з. Может и есть решения. Но уверенности в них нет никакой! Уж сколько было на многих форумах примеров, но никто не смог выдать "решения с гарантией"!
Семен Кевларвестов (2008-11-05 23:58:00) [5]
> Просто есть мысль приводить в верхний регистр, раз они такие
> заколдованные
А там так и сделано: идет поиск в верхнем регистре. А данные для которых поиск важен (к примеру ФИО) так в базу и вносятся, в верхнем регистре. Просто нужно было кое-что прикрутить (в частности, стал необходим поиск по другим данных, которые могут хранится и в нижнем, и в смешанном регистре) и вылезла эта особенность.
> Отказаться от БДЕ
Я правильно понимаю, что если продолжать работать через BDE - решения нет? (Убрать его никто, естественно, не даст).
Anatoly Podgoretsky (2008-11-05 12:24:00) [6]> Vlad Oshin (05.11.2008 10:41:04) [4]
Чем и когда и зачем портить базу?
Vlad Oshin (2008-11-05 10:41:00) [7]Просто есть мысль приводить в верхний регистр, раз они такие заколдованные
Anatoly Podgoretsky (2008-11-05 10:32:00) [8]> Vlad Oshin (05.11.2008 10:06:02) [2]
Не работает, а вот если <ч> и <Я>, то работает?
Vlad Oshin (2008-11-05 10:06:00) [9]
> если в строке есть буквы 'ч' или 'я'
а если Ч и Я, то работает?
Anatoly Podgoretsky (2008-11-05 07:43:00) [10]> Семен Кевларвестов (05.11.2008 2:28:00) [0]
Отказаться от БДЕ