crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Вопрос по БД, 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


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9629
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 769 раз(а)




Репутация:   94  


Цитата(sibmail @ 16.4.2009, 11:40) *
вывести надо основную, вместо id данные из других таблиц и в этом же выводе добавить столбец из данных которые зависят от др.таблицы.
если без дополнительного столбца, то используешь QSqlRelationalTableModel.
Когда надо дополнительный столбец, то тут нужно самому реализовать поддержку составной таблицы.
Вариантов может быть несколько:
1) Использовать модель запроса, нужно будет создать её самому если нужна возможность редактирования. Затем соеденить модель с представлением.
2) Использовать QSqlTableModel + свою модель-посредник (proxy-model), в которой будешь тянуть из БД дополнительный столбец и возвращать в БД данные когда пользователь их отредактирует. Затем соеденить модель-посредник с представлением.


Цитата(sibmail @ 16.4.2009, 11:40) *
ем отличается TableView от TableWidget?
QTableWidget представляет собой комбинацию табличного представления и табличной модели (QAbstractTableModel) и предназначен для мизерного кол-ва данных и поддержки приемов работы используемых в Qt3 (подробнее).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.6.2017, 6:29