Главная страница
    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.04 c
2-1158664456
Василий Блаженный
2006-09-19 15:14
2006.10.08
TIdPOP3Client


11-1134842022
nester
2005-12-17 20:53
2006.10.08
KOL и x64


4-1148627530
mariya_mezenceva
2006-05-26 11:12
2006.10.08
чтение из com-порта


1-1156939185
matyx
2006-08-30 15:59
2006.10.08
функция GetSystemTime выдаёт неправильное время


2-1158382491
Arazel
2006-09-16 08:54
2006.10.08
Народ кто небудь пробывал работать с USB флешь носителями





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский