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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlTableModel и метод setQuery QSqlQueryModel *q=dynamic_cast<QSqlQueryModel*>  (Прочитано 4530 раз)
Max Payne
Гость
« : Апрель 05, 2012, 13:35 »

Задача сделать редактирование данных  с  разных таблиц  в одном QTableView. Нашел как это делается через наследование :
Код:
QSqlTableModel *model = new QSqlTableModel(this,dbSql);
QSqlQueryModel *queryModel = dynamic_cast<QSqlQueryModel*>(model);

Модель работает  если делать не большой запрос типа ("select Name, Id from data where Pol = 1")
Но у меня сложный запрос типа
Код:
select Animals.Код_Породы, Animals.Код_Окраса,Animals.Пол,Animals.Кличка,Animals.Дата_рождения,Animals.Родословная,Animals.Отец_Кличка,Animals.Отец_Окрас,Animals.Мать_Кличка,Animals.Мать_Окрас, Заводчик.Заводчики,Владелец.Владелец, View.Expert_1,View.Expert_2, View.NClass_1,View.NClass_2, View.ZOc_1,View.ZOc_2 , View.Nom_Bis_1 , View.Nom_Bis_2, View.Present_1 ,View.Present_2 , View.WCF_Master, View.WCF_Ring, View.BreedShow, View.Paying, View.AddiNote, View.Selling, View.Titul_1,View.Title_1, View.Titul_2, View.Title_2 , View.NB_1, View.NB_2 from Animals, Заводчик,Владелец , View where Заводчик.ID_Breeder=Animals.ID_Breeder And Владелец.ID_owner=Animals.ID_Owner AND View.ID=(select ID from Data where Name='привт') And View.ID_Cat=Animals.ID_Cat And View.AddiList='true'


и выборку корректно делает только по нескольким переменным (у меня это 10 колонок ), а дальше таблица забивается словом, которым определён хидер таблицы. Может кто то с этим сталкивался хелп.
Заранее спасибо.
« Последнее редактирование: Апрель 06, 2012, 10:13 от Max Payne » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Апрель 06, 2012, 13:35 »

Так делать нельзя. Используй QSqlRelationalTableModel.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Max Payne
Гость
« Ответ #2 : Апрель 08, 2012, 10:16 »

Но это модель тоже работает только с одной таблицей =/
Код:
The QSqlRelationalTableModel class provides an editable data model for a single database table, with foreign key support
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Апрель 09, 2012, 09:34 »

Тогда наследуйся от QSqlQueryModel и реализуй сам редактирование.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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