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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2011, 15:21   #1
Ximera370
Пользователь
 
Регистрация: 06.07.2011
Сообщений: 11
Вопрос параметизированный запрос и Combobox

Здравствуйте!
Подскажите в такой ситуации

Есть Combobox в нем можно выбрать значения ну например - стулья, кресла, табуретки
Далее выбранное значение подставляется в параметизированный запрос

query2.Active:=false;
Query2.ParamByName('mebel').Value:= Form4.ComboBox1.Text;
query2.Active:=true;


а в самом Query2. по этом значению происходит выборка.

where (osnova.mebel=:mebel). где :mebel.datatype=ftString


Тут все замечательно работает, а как сделать так чтоб например в
ComboBox1 можно было выбрать категорию - Все, и Query2 выбрал бы
и стулья и кресла и табуретки?!?!
Ximera370 вне форума Ответить с цитированием
Старый 22.07.2011, 23:50   #2
Ximera370
Пользователь
 
Регистрация: 06.07.2011
Сообщений: 11
По умолчанию

Товарищи знатоки, ну подскажите...
Ximera370 вне форума Ответить с цитированием
Старый 23.07.2011, 06:14   #3
Karabash
Форумчанин
 
Регистрация: 26.07.2009
Сообщений: 216
По умолчанию

Иначе чем переделкой текста запроса никак не сделать (во всяком случае в Firebird, MS SQL Server, Access).
Karabash вне форума Ответить с цитированием
Старый 23.07.2011, 10:04   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а в самом Query2. по этом значению происходит выборка.
Код:
where (osnova.mebel=:mebel)
где :mebel.datatype=ftString

Тут все замечательно работает, а как сделать так чтоб например в
ComboBox1 можно было выбрать категорию - Все, и Query2 выбрал бы
и стулья и кресла и табуретки?!?!
Отлично сформулированный запрос!

я лично в подобных ситуациях использую такой трюк:
изменяйте запрос Query2 на такой:
Код:
where :mebel in (osnova.mebel, 'ВСЕ')
p.s. можно, конечно и банальное:
Код:
where ((osnova.mebel=:mebel) or (:mebel='ВСЕ') )
но я предпочитаю не использовать OR в запросах без крайней на то необходимости - это часто плохо влияет на производительность запроса...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Webbrowser и combobox: сделать чтобы в combobox-е оставалась история посещенных сайтов uasya2 Общие вопросы Delphi 6 06.03.2011 20:24
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Как создать запрос с использованием данных из combobox ксона БД в Delphi 9 13.12.2008 16:52
Запрос и ComboBox Luna_13 БД в Delphi 14 30.09.2008 22:46
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45