Russian Qt Forum
Апреля 21, 2025, 13:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Запрос с многими условиями  (Прочитано 4939 раз)
Achernar
Гость
« : Июня 11, 2014, 07:13 »

Здравствуйте,

Новичок в SQL, не совсем все понимаю, возник вот такой вопрос:

Есть таблица в БД, пусть в ней будет 4 поля, есть форма на которой можно задать несколько условий, пример во вложении, причем неизвестно сколько из этих условий активирует пользователь. Меня интересует каким образом правильно составить подобный запрос, то есть делается это средствами клиента или БД, и как конкретно это сделать - писать запросы на каждый вариант, но ведь вариантов может быть очень много, или есть способ проще?
« Последнее редактирование: Июня 11, 2014, 07:50 от Achernar » Записан
Figaro
Гость
« Ответ #1 : Июня 11, 2014, 07:37 »

А в чем проблема? В зависимости от чекбоксов и текстовых полей добавляем в WHERE нужные условия, например:

Код:
QString sql("SELECT * FROM table WHERE");
if (Field1.isChecked()) {
if (!Field1Min.text().isEmpty())
sql += " (field1 > :Field1Min)";
if (!Field1Max.text().isEmpty())
sql += " (field1 < :Field1Max)";
}
...
QSqlQuery query(database);
query.prepare(sql);
if (Field1.isChecked()) {
if (!Field1Min.text().isEmpty())
query.bindValue("Field1Min", Field1Min.text().toInt());
if (!Field1Max.text().isEmpty())
query.bindValue("Field1Max", Field1Max.text().toInt());
}
...
if (!query.exec()) {
...
}

P.S. AND'ы в SQL условии сами проставите...
Записан
Achernar
Гость
« Ответ #2 : Июня 11, 2014, 07:45 »

Спасибо, просто как-то не мог уловить общий принцип составления.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.022 секунд. Запросов: 18.