Russian Qt Forum
Ноябрь 23, 2024, 18:34
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
с++ QT 4.8.1 + MySQL Server 5.5 (формирование запросов через GUI)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: с++ QT 4.8.1 + MySQL Server 5.5 (формирование запросов через GUI) (Прочитано 3925 раз)
alammer
Гость
с++ QT 4.8.1 + MySQL Server 5.5 (формирование запросов через GUI)
«
:
Июль 26, 2012, 09:57 »
Здравствуйте:)
Написал программу по выводу на экран информации из БД. Вывод осуществляется через QSQLQueyModel+QTableView. БД нужна для логирования, поэтому сами данные нередактируемые, к тому же будет заточена под единственного на каждую сессию клиента.
Единственная функция приложения в том, чтобы предоставить пользователю возможность выборки из БД по некоторым критериям. Т.к. потенциальный пользователь с SQL не знаком и знакомится не собирается, думаю самым удобным способом выбора критериев будет выделение мышью или некой комбинацией "кнопка+ЛКМ/ПКМ" нескольких критериев выборки на экранном представлении с последующим формированием запроса. Т.е. если грубо, кликаем на "Фамилию1", кликаем на "Фамилию2", кликаем на "ДатуХ", нажимаем на форме большую кнопку "Применить фильтр" и смотрим на результат.
Общие принципы формирования запросов в БД я знаю, как определять содержимое кликнутой ячейки таблиц (т.е. критерий выборки) тоже вроде по форумам освещено нормально, непонятно как это оптимально совместить в одном месте - запросы в драйвер БД передаются виде строки, где название таблицы и столбцы, по которым будет производится выборка (т.е. в данном случае "Фамилия" и "дата"), вроде должны указываться явно?
Я думал в сторону формирования набора шаблонов, учитывающих все возможные варианты сочетания столбцов, но потом вспомнил комбинаторику и осознал, что для таблицы из 15 столбцов это слишком будет:)
Если кто сталкивался с подобной проблемой, то буду рад помощи:)
А то я QT c MySQL первый раз три недели назад увидел и туплю сильно, вчера потратил полдня, чтобы понять как размер таблицы к размеру окна привязать, а там всего два раза мышью кликнуть надо было:)
Записан
Bepec
Гость
Re: с++ QT 4.8.1 + MySQL Server 5.5 (формирование запросов через GUI)
«
Ответ #1 :
Июль 26, 2012, 10:03 »
А поставить простейший виджет фильтр религия не позволяет?
Или вы хотите, чтобы пользователь тыкал на ячейки таблицы и далее жал на кнопку(как то кривовато, вы так не думаете?).
Если вы хотите фильтровать по столбцам, то сформировать запрос вы наверно сможете. Вам необходимо просто дать пользователю возможность выбрать чекбоксы с фильтрами.
Если же хотите по данным, тогда просто сделайте множественный селект в view. А при нажатии на кнопку проходите по ним и составляйте запрос.
Записан
alammer
Гость
Re: с++ QT 4.8.1 + MySQL Server 5.5 (формирование запросов через GUI)
«
Ответ #2 :
Июль 27, 2012, 10:48 »
простейший виджет-фильтр не очень удобен, когда когда записей несколько тысяч, а отдельные поля записи состоят из 30-знаных число-буквенных последовательностей:)
заставить пользователя до посинения лист-боксы крутить в поисках нужного варианта или по 100 знаков вбивать без права на ошибку конечно легче, но как-то не сильно прямее выглядит:)
про множественный селект то понятно, непонятно как после него динамически сформировать запрос в БД?
к QSqlDriver::sqlStatement можно не отсылать, не подходит
Записан
Bepec
Гость
Re: с++ QT 4.8.1 + MySQL Server 5.5 (формирование запросов через GUI)
«
Ответ #3 :
Июль 27, 2012, 14:13 »
Эммм... я незнаю, как вы представляете себе виджет фильтр. Я себе представляю тупой запрос в БД и показ результатов.
А так же есть прокси модели. Я с ними мало знаком, но они то как раз и предоставляют вроде выборочного показа информации.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...