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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2014, 18:25   #1
bruimafia
Новичок
Джуниор
 
Регистрация: 31.03.2014
Сообщений: 5
По умолчанию Фильтрация ненужного в базе

Есть база данных с блюдами. На сколько я понимаю код ниже будет выводить записи, в которых есть текст введенный в Edit1.

Код:
ADOQuery1.Filtered:=false;
ADOQuery1.Filter:='Ингредиенты LIKE ' + #39 + '%' + Edit1.Text + '%' + #39;
ADOQuery1.Filtered:=true;
Нужно сделать наоборот: допустим я ввожу в Edit1 "чеснок" и из списка отображения убираются все блюда содержащие "чеснок", остаются те, где нет чеснока. Каким способом это сделать? Есть какой-нибудь запрос или еще что-нибудь?
bruimafia вне форума Ответить с цитированием
Старый 31.03.2014, 19:24   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте сделать NOT LIKE:
Код:
ADOQuery1.Filter:='Ингредиенты NOT LIKE ' + #39 + '%' + Edit1.Text + '%' + #39;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.03.2014, 19:28   #3
bruimafia
Новичок
Джуниор
 
Регистрация: 31.03.2014
Сообщений: 5
По умолчанию

Ошибка
bruimafia вне форума Ответить с цитированием
Старый 31.03.2014, 19:34   #4
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

А зачем фильтр на TADOQuery? Я понимаю, если работаете с TADOTable. Гораздо проще изменить сам запрос и получить искомое
ReportCube вне форума Ответить с цитированием
Старый 31.03.2014, 19:40   #5
bruimafia
Новичок
Джуниор
 
Регистрация: 31.03.2014
Сообщений: 5
По умолчанию

Каким образом изменить запрос? Если я например не люблю лук, то ввожу "лук" и из списка пропадают блюда содержащие лук. А как это реализовать ни единой мысли, ни на ADOQuery, ни на ADOTable.
bruimafia вне форума Ответить с цитированием
Старый 31.03.2014, 19:45   #6
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

where not [Ингредиенты] LIKE ''%Лук%'
ReportCube вне форума Ответить с цитированием
Старый 31.03.2014, 19:57   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Парсер фильтра написан глючно. И запросто NOL LIKE может не правильно обрабатываться. Сталкивался с тем, что выражение a=1 and (b=1 or b=5) не работает. А (a=1 and b=1) or (a=1 and b=5) работает. Поэтому если и использую Filter, что крайне редко, то с простейшими выражениями. Лучше OnFilterRecord. А еще лучше в запросе, тем более что здесь ADOQuery
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2014, 20:00   #8
bruimafia
Новичок
Джуниор
 
Регистрация: 31.03.2014
Сообщений: 5
По умолчанию

А как это в запросе указать, не подскажите?
bruimafia вне форума Ответить с цитированием
Старый 31.03.2014, 20:02   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ReportCube написал как
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2014, 20:06   #10
bruimafia
Новичок
Джуниор
 
Регистрация: 31.03.2014
Сообщений: 5
По умолчанию

Разобрался, всё работает. Спасибо, ребята!
bruimafia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация rule-z C# (си шарп) 0 16.08.2012 13:38
надо привязать php сайт к базе данных Access и что бы при заполнение формы на сайте данные сохранялись в базе Алёна_))) Microsoft Office Access 2 20.06.2012 12:24
Чем отличается Очередь на базе списка от Очереди на базе массива? TwiX Общие вопросы C/C++ 7 16.02.2011 12:17
Фильтрация по начальной и конечной дате в базе данных FoxBrut Помощь студентам 0 16.06.2010 21:22
фильтрация ЦЕРЦЕЯ Microsoft Office Excel 2 19.11.2009 06:41