Russian Qt Forum
Ноябрь 22, 2024, 06:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Запрос с многими условиями  (Прочитано 4802 раз)
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.043 секунд. Запросов: 20.