Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не срабатывает кейсоинсенситивность в 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]

Отказаться от БДЕ


Наверх

Титульная страница Поиск, карта сайта Написать письмо