Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Like и метасимволы в эдит 
:(
    Опции темы
Лиходей
Дата 18.2.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2008

Репутация: нет
Всего: нет



БД Access, доступ  Ado.

Поясните пожалуйста, почему, при строке фильтра которая имеет вид

Код

filtеr:= 'NAME LIKE '+  #39 + edtName.Text +  #39;


и при тексте эдита '%ася', все работает как положено, ищются Васи, аси...
А при тексте 'В%я', никаких данных не найдено.

И еще один вопрос: 
текст едита  '_ся' и '%ся'  дают одинаковый результат, 
т.е. в первом случае как и во втором заменяется не один символ, а несколько.




PM MAIL   Вверх
Kbl4AH
Дата 18.2.2009, 19:46 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Лиходей @  18.2.2009,  19:17 Найти цитируемый пост)
А при тексте 'В%я', никаких данных не найдено.

, при учете того, что
Цитата(Лиходей @  18.2.2009,  19:17 Найти цитируемый пост)
и при тексте эдита '%ася', все работает как положено, ищются Васи, аси...

- ГОН!!!
Цитата(Лиходей @  18.2.2009,  19:17 Найти цитируемый пост)
текст едита  '_ся' и '%ся'  дают одинаковый результат, т.е. в первом случае как и во втором заменяется не один символ, а несколько.

Тоже ГОН!!!
Может у тебя с регистрами путаница? Что возможно... приведи поле к определенному регистру и указывай в like в таком же...
ЗЫ. Чтобы не быть голословным проверил это запросами из таблицы...
Не поленился и вставил Асю и Васю...
Код

select distinct name from card t where name like '%ся' ;

Алеся, Ася, Вася, Олеся
Код

select distinct name from card t where name like 'В%ся' ;

Вася
Код

select distinct name from card t where name like '_ся' ;

Ася
Код

select distinct name from card t where name like '%ся' ;

Алеся, Ася, Вася, Олеся

Это сообщение отредактировал(а) Kbl4AH - 18.2.2009, 19:48
PM MAIL ICQ   Вверх
Лиходей
Дата 18.2.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2008

Репутация: нет
Всего: нет



Если это гон, то зачем бы я морочил голову и себе и людям?

Я серьезно говорю, если метасимволы стоят вначале или в конце строки, то все работает,
если в середине нет.

Сам удивлен, поэтому и прошу объяснить, что к чему... Может у кого-то было такое.

С регистром все впорядке, в базе все данные в верхнем регистре, и в эдите CharCase = UpperCase.

    
PM MAIL   Вверх
Лиходей
Дата 23.2.2009, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2008

Репутация: нет
Всего: нет



Наверное кокой-то трабл в TADOTable... Фильтрация работает не корректно, если метасимволы стоят в середине строки...

Если использовать ADOQuery с запросами таким как предлагал Kbl4AH, все работает.






PM MAIL   Вверх
Hexel
Дата 23.2.2009, 22:01 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 30.10.2007
Где: UA

Репутация: нет
Всего: нет



Попробуй перефразировать
Код

filtеr:= 'NAME LIKE ''' + edtName.Text +  '''';


там каждая одинарная кавычка внутри строки записывается двумя сразу - таким я пользуюсь каждый день
или еже как вариант - QuotedString или как его...


Это сообщение отредактировал(а) Hexel - 23.2.2009, 22:02
PM MAIL   Вверх
Данкинг
Дата 23.2.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Какой фильтр вообще, запросом не проще? 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Kbl4AH
Дата 24.2.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Hexel, 
Код

'''' = #39

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.