![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте!
Помогите добрые знающие решить проблемку. Ситуация такая: имеем ADOConection, ADOQuery,DataSource для таблички в access-овской базе. Смотрим мы на эту базу через DBGrid. На форме, над DBGrid-ом располагается Edit. Необходимо, чтобы при вводе текста в Edit, ADOQuery отсекал ненужное. Т.е. ввожу, к примеру, 'к' в Edit и из просмотра удаляются все записи, в которых поле n_u не начинается с 'к'. Мудрил вот с кодом: Код:
form4.Query_oborud.Active := false; form4.Query_oborud.SQL.Clear; form4.Query_oborud.SQL.Add('SELECT * from oborud WHERE ur1=:ur1 and ur2=:ur2 and ur3=:ur3 and n_u Like <что тут должно быть?> '); form4.Query_oborud.Parameters.ParamByName('ur1').Value := ur1; form4.Query_oborud.Parameters.ParamByName('ur2').Value := ur2; form4.Query_oborud.Parameters.ParamByName('ur3').Value := ur3; form4.Query_oborud.Active := true; В случае с ADOTable применяю такое, к примеру: Код:
Form4.Table_EK.Filtered := false; Form4.Table_EK.Filter := Format('[n_u] like '+#39+'%s%%'+#39, [Form4.Edit1.Text]); Form4.Table_EK.Filtered := True; а как реализовать Like в динамически формирующемся запросе, как к текстовой строке прилепить % в запросе? |
#2
|
||||
|
||||
![]() для поиска вида "Т.е. ввожу, к примеру, 'к' в Edit и из просмотра удаляются все записи" лучше применить событие OnChange указаного эдита и событие ADOQuery.Filter
Поживу - увижу, Доживу - узнаю, Выживу - учту. ![]() [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 25.10.2012 в 20:56. |
#3
|
|||
|
|||
![]() Поддерживаю!
И на будущее WHERE в SQL запросе имеет те же значения что и Filter . Разница только в том что одно фильтрует на твоем компе а другое на сервере! т.е. ваша строка будет выглядеть так Код:
form4.Query_oborud.SQL.Add('SELECT * from oborud WHERE ur1=:ur1 and ur2=:ur2 and ur3=:ur3 and ' + Format('[n_u] like '+#39+'%s%%'+#39, [Form4.Edit1.Text])); Последний раз редактировалось enslaver, 25.10.2012 в 19:27. |
#4
|
|||
|
|||
![]() Большое спасибо за ответы! Осмысливаю...
|