Вопрос по БД, Sql, моделям. |
Здравствуйте, гость ( Вход | Регистрация )
Вопрос по БД, Sql, моделям. |
sibmail |
16.4.2009, 7:40
Сообщение
#1
|
Студент Группа: Участник Сообщений: 63 Регистрация: 20.3.2009 Пользователь №: 626 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мне необходимо вывести данные из БД в главное окно. Например, есть три таблицы (основная и справочники). вывести надо основную, вместо id данные из других таблиц и в этом же выводе добавить столбец из данных которые зависят от др.таблицы. Все это должно быть редактируемо и сохраняемо.
Посмотрел QSqlQueryModel, QSqlTableModel, QSqlRelationalTableModel. В первом случае можно писать привычный запрос, но нельзя редактировать. второе можно редактирвать, но запросы не совсем понятно как расписывать. в QSqlRelationalTableModel можно например вывести в comboBox - удобно. Теперь вопрос )). Чем отличается TableView от TableWidget? Как добавить столбцец c данными в tableView или выввести только те какие надо используя QSqlRelationalTableModel?? Посоветуйте что использовать в моем случае, т.к. надо выводить данных по сложным запросам. |
|
|
Litkevich Yuriy |
16.4.2009, 8:06
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
вывести надо основную, вместо id данные из других таблиц и в этом же выводе добавить столбец из данных которые зависят от др.таблицы. если без дополнительного столбца, то используешь QSqlRelationalTableModel.Когда надо дополнительный столбец, то тут нужно самому реализовать поддержку составной таблицы. Вариантов может быть несколько: 1) Использовать модель запроса, нужно будет создать её самому если нужна возможность редактирования. Затем соеденить модель с представлением. 2) Использовать QSqlTableModel + свою модель-посредник (proxy-model), в которой будешь тянуть из БД дополнительный столбец и возвращать в БД данные когда пользователь их отредактирует. Затем соеденить модель-посредник с представлением. ем отличается TableView от TableWidget? QTableWidget представляет собой комбинацию табличного представления и табличной модели (QAbstractTableModel) и предназначен для мизерного кол-ва данных и поддержки приемов работы используемых в Qt3 (подробнее).
|
|
|
Текстовая версия | Сейчас: 2.1.2025, 15:57 |