|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Поиск строк в dbgrid
Нужно, чтобы в поле поиска детали TEdit вводились начальные буквы, а результаты в DBGrid выводились по мере заполнения поля TEdit.
И поиск детали:что в строке написано :Валы гибкие проволочные. А я ввожу в поле поиска по буквам : гибкие. И хочу, чтобы вывелись все строки, где есть слова с буквы г, затем ги, и т.д..Т.е. поиск не с первого символа, а с любого первого совпадения внутри строки. ссылка на проггу : http://depositfiles.com/ru/files/ok4chcu2f |
#2
|
||||
|
||||
Ну и делайте по изменению в едите новый sql запрос для грида используя Like
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 05.05.2010 в 17:17. |
#3
|
|||
|
|||
М-м-м... не, я бы сделал на OnFilterRecord. Быстрее будет, наверное. Т.е. если строка (Edit) пустая, то выводим все, как только начинаем что-то вволдить - начинается фильтрация. мне кажется, что так будет быстрее, чем каждый раз лезть на сервер за данными, кторые и так уже загружены.
Вопрос в том, что может начинать фильтровать только тогда, когда введено как минимум 3 символа... ну тут тебе решать. |
#4
|
||||
|
||||
Вряд-ли быстрее. Фильтр по сути тот-же запрос. К тому-же есть такое соображение, что если данные находятся на SQL-сервере и стоит ограничение на получение части выборки, то фильтр может просто не увидеть ту часть данных, что осталась на сервере. Несколько наворочено, но надеюсь понятно.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Код:
procedure TPokupateli.Edit1Change(Sender: TObject); begin if (edit1.text<>'') then begin dm.org_table.Filter:='(Название LIKE '''+edit1.Text+'%'')'; dm.org_table.Filtered:=true; end else dm.org_table.Filtered:=false; end; Использую такой метод, пока проблем не было |
#6
|
||||
|
||||
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#7
|
|||
|
|||
Цитата:
А вот тут вы, батенька, не правы. Событие OnFilterRecord позволяет отображать или не отображать уже загруженную запись по некоторому условию. Т.е. записи один раз уже загружены и мы их просто показываем или нет в зависимости от условия. |
#8
|
|||
|
|||
Цитата:
|