Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Вниз

loCaseInsensitive   Найти похожие ветки 

 
TrainerOfDolphins ©   (2006-09-15 12:26) [0]

Добрый день!
Таблица содержит фамилии, которые, естественно, начинаются с большой буквы. Надо найти человека по первой букве фамилии.
IBTable.Locate("Surname",s,[loPartialKey,loCaseInsensitive]) - ничего не находит. Скажите, подалуйста, в чём здесь может быть причина.


 
stone ©   (2006-09-15 12:31) [1]


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

1. такой фамилии нет
2. в таблицу загружены не все записи
3. включен фильтр


 
TrainerOf Dolphins   (2006-09-15 12:38) [2]

Такая фамилия есть. Записи все. Никаких фильтров.
Таблица проиндексированна по полю Surname.
Если нажать вместе с буквой Shift, то запись находится, что вроде говорит о том, что loCaseInsensitive игнорируется...


 
Anatoly Podgoretsky ©   (2006-09-15 13:03) [3]

TrainerOf Dolphins   (15.09.06 12:38) [2]
Это все слова.


 
TrainerOf Dolphins   (2006-09-15 13:14) [4]

2 Anatoly Podgoretsky
Что Вы имеете в виду?


 
Anatoly Podgoretsky ©   (2006-09-15 13:30) [5]

То что приведена неполная информация.


 
TrainerOf Dolphins   (2006-09-15 13:45) [6]

Ну не знаю. Charset win1251. Если это имеет значените.
Метод  Locate вызываю в обработчике OnKeyPress DBGrid-а.
Что ещё нужно?


 
Сергей М. ©   (2006-09-15 13:51) [7]

Цитата из справки:

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 14:03) [8]

Вот. Это уже ближе к делу...
Очень внимаьельно прочитал. Подумал. Но выводов пока сделать не могу... Индекс по полю SURNAME не совместим с LocateOptions? С чего бы это?


 
Сергей М. ©   (2006-09-15 14:09) [9]

Ой вру.

Проблема скорей всего из-за "кривизны" работы UPPER в конкретной реализации IB-совместимого сервера. А проблема эта довольно известна.


 
TrainerOf Dolphins   (2006-09-15 14:16) [10]

И что делать?
Можно так:
   s:= Key;
   s:= AnsiUpperCase(s);
   IBTable.Locate("Surname",s,[loPartialKey,loCaseInsensitive]) ;
Но нужно ли...


 
Сергей М. ©   (2006-09-15 14:39) [11]


> TrainerOf Dolphins   (15.09.06 14:16) [10]
>
> И что делать?


Для начала убедиться, что сформированное компонентом TIBTable при вызове метода Locate() SQL-предложение действительно не возвращает ни одной записи.

См TIBSQLMonitor

Если так, то либо сменить IB-совместимый сервер на другой (где UPPER заведомо работоспособно) либо писать свою UDF (или использовать любую готовую), корректно реализующую сабж.


 
TrainerOf Dolphins   (2006-09-15 14:57) [12]

Спасибо.
Такого конкретного ответа мне и хотелось...:)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
15-1158242180
ceval
2006-09-14 17:56
2006.10.08
функции - информацию о процессоре и загрузки


15-1158435160
Ajax
2006-09-16 23:32
2006.10.08
Включение компьютера без видеокарты


1-1156947410
Sesh
2006-08-30 18:16
2006.10.08
Поиск 3-х одинаковых объектов в чужом окне


6-1147938633
LINde
2006-05-18 11:50
2006.10.08
Как узнать системную информацию на комп"ютерах в локальной сети


9-1136861113
незнаускас
2006-01-10 05:45
2006.10.08
Проблема





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский