Показать сообщение отдельно
  #1  
Старый 09.06.2015, 16:22
Аватар для SCrat.ORS
SCrat.ORS SCrat.ORS вне форума
Активный
 
Регистрация: 20.02.2007
Адрес: Мой адрес не дом и не улица, мой адрес 0x7С00
Сообщения: 208
Версия Delphi: 2006
Репутация: 884
Вопрос Поиск по таблице

Имеется ADOQuery, DBGrig, в общем стандартный набор.
В базе есть какая-то таблица, с какими-то данными - вообще не суть.
На форме есть DBGrid, в котором отображается таблица с данными, И имеется Edit, в котором вписываем текст для поиска.
Пытаюсь сделать что по мере набора текста в Edit сразу же идет фильтрация.
т.е. на обработчике Edit.KeyUP висит SQL отбор:
Код:
  with Form1.ADOQuery1 do begin
         SQL.Clear;
         SQL.Add('SELECT user_name,groups FROM users_list');
         SQL.Add('WHERE usr_roles < 5');
         SQL.Add('AND (user_name LIKE '+quotedstr('%'+Edit1.text+'%'));
         SQL.Add('OR groups LIKE '+quotedstr('%'+Edit1.text+'%')+')');
         SQL.Add('ORDER BY user_name');
         Open;
 End;
И всё хорошо фильтруется и отсеивается, но DBGrig при каждом нажатии "Мерцает", - оно понятно, что он данные обновляет и поэтому "мерцает".
Вопрос: Как избавиться от "Мерцания"? DoubleBuffering - не помогает.
Или может я изначально не правильно делаю фильтрацию? - Тогда подскажите как это делать правильно.
__________________
Програмистами не рождаются, ими становятся!
Ответить с цитированием