Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтрация в DBGrid [D7]


Страницы:   1 2

Lamka ©   (2004-12-20 17:31:00) 

Доброго времени суток уважаемые мастера. У меня проблема мне нужно отфильтровать текст в DBgrid я использую этот код
table1.filtered := true
table1.filter := 'FieldName like ' + chr(39) + trim(Edit.text) + '%' + chr(39);
Но при наборе текста в Edit Delphi выдаёт ошибку.В чём дело?


Lamka   (2004-12-21 16:45:00) [21]

msguns ©  
Мне нужна контекстнаяфильтрация.


Zacho   (2004-12-21 13:55:00) [22]

Lamka   (20.12.04 18:08) [3]
А вы знаете другой способ?


Совет №1: вместо + chr(39)+использовать AnsiQuotedStr

> Помогите лаёмеру, пожалуйста.

А вот этого не надо. Зачем себя унижать ? Такое только уменьшает вероятность корректного ответа. Читай http://ln.com.ua/~openxs/articles/smart-questions-ru.html


msguns   (2004-12-21 13:19:00) [23]

Ты бы сформулировал почетче:
Если тебе нужна контекстнаяфильтрация/поиск, т.е. как только узер ввел буковку, то тут же и ищется/фильтруется, еще одну ввел, то снова ищется/фильтруется, то это одно. И чревато оно тем, что сложноватисто работает с несимвольными типами полей.
Если же фильтрация/поиск "по кнопке", т.е. узер ввел шаблон, нажал кнопку и только тогда ищется/фильтруется, то это другое.

Контекстный поиск, ИМХО, смысл имеет, да и быстрый он. А вот контекстная фильтрация (опять же ИМХО) - на фиг не нужна - только тормозить будет, да и смысла лишена. Фильтруют обычно по  значениям каких-то полей, т.е. это смысловаявыборка. Например, показать только приходные накладные или только персонал X-го отдела и т.д. Фильтр же, к примеру, по месяцу или периоду должен выполняться через доп.условия выборки, но не фильтром. Да и вообще метод работы через Ttable изначально обречен на кучу траблов, не последние из которых есть тормоза.


Соловьев   (2004-12-21 13:17:00) [24]

table1.filtered := true
table1.filter := 'FieldName like ' + chr(39) + trim(Edit.text) + '%' + chr(39);
Но при наборе текста в Edit Delphi выдаёт ошибку.В чём дело?

1. Укажи ошибку.
2. Приведи код. Потому как то что ты привел - НЕДОСТАТОЧНО!


Anatoly Podgoretsky   (2004-12-21 13:17:00) [25]

А есть ли ошибка?


Lamka   (2004-12-21 13:09:00) [26]

Помогите лаёмеру, пожалуйста.


Lamka   (2004-12-20 18:08:00) [27]

msguns ©  
А вы знаете другой способ?


msguns   (2004-12-20 17:51:00) [28]

Перед тем, как юзер начинает вводить значение в эдит, надо давть датасету DisabledControl, а по завершению проверять корректность введенной инфы и, если правильно, EnabledControl датасету.
А вообще рисковый способ выбран ;))


Соловьев   (2004-12-20 17:48:00) [29]

при наборе текста в Edit

то что ты привел и ошибка не связаны.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо