Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > Поиск, параметры Locate |
Автор: Exai1e 5.4.2007, 09:15 | ||||
Здарсти. Возникла вот такая проблема. Вот код
Все норм, находит. Но поиск чувствителен к реестру... Хотя
Спасибо |
Автор: Akella 5.4.2007, 09:29 |
Убери из параметров loCaseInsensitive и попробуй искать. |
Автор: Exai1e 5.4.2007, 13:13 |
не помогло... |
Автор: DimW 5.4.2007, 13:40 | ||
|
Автор: Exai1e 5.4.2007, 18:03 | ||||||||||||||||
Хм..
Так ведь у мя он прописан, а все равно не пашет... О_о //------------------------------------------------------------------------------------- Мона еще узнать, почему не работает поиск через LIKE ? Код:
sql запрос в IBQuery6 :
При попытке поиска выдает вот такую ошибочку... http://img58.imageshack.us/img58/1474/tmpvn7.jpg Полазил по форуму, вроде бы все правильно... :-| Попробывал вот так
Так при попытке поиска, вылетаеш ошибка что в ibquery6 нет парамерта Par, хотя он там есть :-/ хм.. получаеться надо использовать этот запрос с LIKE в главной кверти ?
Выкидывает ошибку при попытке поиска, "Dynamic SQL Error. SQL Error code - 104 Unexpected end of command" Пробывал заменять это
на это
Непомогает... Вроде порыскал по форуму, везде так делают... хм.. а у мя чет невыходит :( ----------------------------------------------------------------------------------------------------------------------- хм, пробую делать вот так:
Так как походу запрос надо добавлять в 2 строки то тогда получаеться вот ттакая лабуда: http://img238.imageshack.us/img238/6203/tmpzc6.jpg ----------------------------------------------------------------------------------------------------------------------- |
Автор: SergeBS 6.4.2007, 08:22 | ||||||
Exai1e,
Плохо лазил. Делай так:
TRIM!!! Добавлено через 1 минуту и 29 секунд Блин, пробел после % естественно лишний! Очепятка. Добавлено через 6 минут и 10 секунд А чтобы от регистра не зависело, надо:
Тормозно, но дубово. |
Автор: Akella 6.4.2007, 08:40 |
SergeBS, ну это понятно, а как же с locate быть? Я тоже сталкивался с этой проблемой, давненько, правда. Так и не решил её. Реализовал с пом. SQL. |
Автор: Exai1e 6.4.2007, 09:17 | ||
http://img463.imageshack.us/img463/6364/tmpcr9.jpg
|
Автор: SergeBS 6.4.2007, 09:26 | ||
Akella,
А никак не быть. В Борланде тоже люди работают и что-то могут криво делать. А порой ну очень криво. Например в DualListBox выставь MultiSelect в false и пронаблюдай результат нажатия на "все вправо"/"все влево". Чтобы исправить - нужно все переписать. Было бы время и желание. Да ни того, ни другого нет. Для dbf-ников я ручками поиск делал типа if pos(s1,Field1) > 0 then if pos(s2,Field2) > 0 then ... Заодно и повторный поиск получался. Что часто нужно, а нету в locate. Почему он мне и неинтересен, по большому счету. Ну нету ничего идеального. :( Добавлено через 5 минут и 25 секунд Exai1e, Пробел после LIKE поставь. Лентяй. Добавлено через 6 минут и 53 секунды Exai1e, А ежели чуть подумаешь, то и строка короче будет. Это же очевидно... |
Автор: Exai1e 6.4.2007, 10:51 |
SergeBS, Поставил пробел. А все равно таж самая ошибка :( |
Автор: SergeBS 6.4.2007, 10:55 | ||
Exai1e, Блин. Ну что, совсем все писать надо? НА:
|
Автор: Exai1e 6.4.2007, 11:03 |
SergeBS, Спасибо. Ошибку не выдает ![]() Спасибо Добавлено @ 11:06 Хм.. можеш подсказать плз, почему когда вводиш первые буквы слова которое хочеш найти то все нормально, данные выбираются, а когда слово целиком то не выводит их ? Добавлено @ 11:07 Т.е. если ввести первую букву то норм, а если 2-3 буквы или целиком то тогда не пашет... |
Автор: SergeBS 6.4.2007, 12:07 |
Exai1e, А посмотреть, какая строка в запросе получается (кодировка и т.п.) религия не позволяет? Ведь проще не придумать - сформировать запрос "ручками" в IBExpert или что еще, отладить кодовую страницу и впихнуть результат в Query. ExecSQL - ну это вообще... Доки читать надо: ExecSQL - для НЕ возвращающих данные запросов. |
Автор: SergeBS 6.4.2007, 12:25 |
showmessage(s) - тоже никто не отменял. А у edit-а есть параметр CharCase. До кучи ![]() |
Автор: Exai1e 6.4.2007, 15:23 | ||||
SergeBS, ShowMessage показывает как бы то что надо к прмиеру ввел букву А он показывает
ввел Ан, ShowMessage выдал
![]() |
Автор: SergeBS 6.4.2007, 16:50 |
Exai1e, А они есть такие, чтобы в MEDNAME былоАН? Или ан и т.п. |
Автор: Exai1e 6.4.2007, 17:59 |
Да есть, слова у которых начало на Ан Добавлено через 9 минут и 5 секунд Вот есть слово например Анальгин - ввожу А, находит... Ввожу Ан - ненаходит. Попробывал внести запись БАМБУЧА и Баклофен ![]() Пробую ввожу Б - находит оба, ввожу БА находит БАМБУЧУ... Т.е. если в слове идет загл буква а посл нее незаглавная то он ненаходит ее, а если все например загланые то от слова мона ввести 2первые или даже больше букв. см. скрины, чтобы лучше понять что я имею ввиду ![]() http://img53.imageshack.us/img53/4105/01ne7.jpg http://img53.imageshack.us/img53/39/02is5.jpg http://img53.imageshack.us/img53/1056/03jk4.jpg Добавлено через 11 минут и 2 секунды Получаеться, если запись в табл введена БОЛЬШИМИ (всмысле заглавными) буквами то все находится, а если маленькими то тогда нет |
Автор: Exai1e 6.4.2007, 18:29 | ||
Вроде же как UPPER влияет на регистр, но вот это
непомогло... или мб я че не так делаю... ? |
Автор: Exai1e 6.4.2007, 23:11 |
Вот че подумал. Не может ли быть это проблема с UPPER самого IB ? Гдето толи на этом форуме толи на Source прочитал, что у InterBase проблема с UPPER :-/ У мя 7ая версия InterBase... |
Автор: kobra 7.4.2007, 10:00 | ||
да, савсем даже может быть.
для латини проблем не будет, для кирилицы может быть. |
Автор: Exai1e 7.4.2007, 10:16 | ||
kobra,
Если честно... мне это ничего не говорит... ![]() ![]() Добавлено через 6 минут и 15 секунд мдя... проверил ток что с англ буквами, там все норм работает... а с русскими нефига не пашет как надо :( |
Автор: kobra 7.4.2007, 15:12 |
мои тебе совет, поиди в раздел/форум интербеисистов, и спроси там, как ето лечится |
Автор: SergeBS 9.4.2007, 07:19 | ||
Exai1e,
Если честно, то разбираться с этим все равно придется. Доки читай. На одних советах далеко не уедешь. |
Автор: Exai1e 11.4.2007, 13:54 | ||
нашел решение этой проблемы с LIKE , если делать вот так то все работает с русским языком
|
Автор: Akella 13.4.2007, 08:46 |
желательно ещё при создании поля указывать направление сортировки |
Автор: Exai1e 13.4.2007, 23:27 |
Akella, Да я вроде указывал же Win1251... или ты имееш ввиду чтото другое ? |
Автор: Akella 18.4.2007, 10:35 | ||
я это имел ввиду
|