![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
loCaseInsensitive
TrainerOfDolphins © (2006-09-15 12:26:00)Добрый день!
Таблица содержит фамилии, которые, естественно, начинаются с большой буквы. Надо найти человека по первой букве фамилии.
IBTable.Locate('Surname',s,[loPartialKey,loCaseInsensitive]) - ничего не находит. Скажите, подалуйста, в чём здесь может быть причина.
TrainerOf Dolphins (2006-09-15 14:57:00) [1]Спасибо.
Такого конкретного ответа мне и хотелось...:)
Сергей М. (2006-09-15 14:39:00) [2]
> TrainerOf Dolphins (15.09.06 14:16) [10]
>
> И что делать?
Для начала убедиться, что сформированное компонентом TIBTable при вызове метода Locate() SQL-предложение действительно не возвращает ни одной записи.
См TIBSQLMonitor
Если так, то либо сменить IB-совместимый сервер на другой (где UPPER заведомо работоспособно) либо писать свою UDF (или использовать любую готовую), корректно реализующую сабж.
TrainerOf Dolphins (2006-09-15 14:16:00) [3]И что делать?
Можно так:
s:= Key;
s:= AnsiUpperCase(s);
IBTable.Locate('Surname',s,[loPartialKey,loCaseInsensitive]) ;
Но нужно ли...
Сергей М. (2006-09-15 14:09:00) [4]Ой вру.
Проблема скорей всего из-за "кривизны" работы UPPER в конкретной реализации IB-совместимого сервера. А проблема эта довольно известна.
TrainerOf Dolphins (2006-09-15 14:03:00) [5]Вот. Это уже ближе к делу...
Очень внимаьельно прочитал. Подумал. Но выводов пока сделать не могу... Индекс по полю SURNAME не совместим с LocateOptions? С чего бы это?
Сергей М. (2006-09-15 13:51:00) [6]Цитата из справки:
If the search fields in KeyFields are indexed and the index is compatible with the specified search options, Locate uses the index. Otherwise Locate creates a filter for the search.
А теперь думай..
TrainerOf Dolphins (2006-09-15 13:45:00) [7]Ну не знаю. Charset win1251. Если это имеет значените.
Метод Locate вызываю в обработчике OnKeyPress DBGrid-а.
Что ещё нужно?
Anatoly Podgoretsky (2006-09-15 13:30:00) [8]То что приведена неполная информация.
TrainerOf Dolphins (2006-09-15 13:14:00) [9]2 Anatoly Podgoretsky
Что Вы имеете в виду?
Anatoly Podgoretsky (2006-09-15 13:03:00) [10]TrainerOf Dolphins (15.09.06 12:38) [2]
Это все слова.
TrainerOf Dolphins (2006-09-15 12:38:00) [11]Такая фамилия есть. Записи все. Никаких фильтров.
Таблица проиндексированна по полю Surname.
Если нажать вместе с буквой Shift, то запись находится, что вроде говорит о том, что loCaseInsensitive игнорируется...
stone (2006-09-15 12:31:00) [12]
> Скажите, подалуйста, в чём здесь может быть причина.
1. такой фамилии нет
2. в таблицу загружены не все записи
3. включен фильтр