Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2010, 10:37   #1
KrPr
Пользователь
 
Регистрация: 27.01.2009
Сообщений: 18
По умолчанию Простейший фильтр.

Устанавливаю простейший фильтр в procedure TForm1.Edit1Change:

Код:
ClientDataSet1.Filtered:=False;
  ClientDataSet1.Filter:=('Otchestvo like ' + chr(39)+'%'+Edit1.Text+'%'+chr(39));
  ClientDataSet1.Filtered:=true;
Ставлю foCaseInsensitive.

Дальше в едите набраю Александрови все срабатывает нормально выводит всех Александровичей, вписываю Александрович - нет результатов поиска.
Стоит только добавить последний знак.....все, нет записей, хотя в базе они есть.
лександрович - тоже срабатывает правильно....

Последний раз редактировалось Stilet; 02.07.2010 в 11:37.
KrPr вне форума Ответить с цитированием
Старый 02.07.2010, 11:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может быть твоя СУБД не может использовать LIKE для точного поиска.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2010, 08:18   #3
KrPr
Пользователь
 
Регистрация: 27.01.2009
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Может быть твоя СУБД не может использовать LIKE для точного поиска.
Не ужели больше нет не какого решения, как применить фильтр к ClientDataSet?
KrPr вне форума Ответить с цитированием
Старый 31.08.2010, 09:47   #4
gashek
 
Регистрация: 21.03.2009
Сообщений: 4
По умолчанию

По моему Like в фильтре использовать нельзя.
Но у dataset есть событие OnFilterRecord и там есть такое понятие как Accept

если Accept=True, то эта запись выбирается

Т.е. надо написать, примерно так:
Код:
procedure TForm1.DSFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
   Accept :=  'Ваше условие'
end;
gashek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простейший фаерволл wall66 Софт 0 24.10.2009 17:36
простейший basic beerperson Помощь студентам 3 17.05.2009 18:14
простейший запрос на выборку kate158 БД в Delphi 2 13.05.2009 14:33
Простейший firewall ytkopobot Помощь студентам 1 08.05.2008 13:14