crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QSqlRelationalTableModel выборка всех полей
lifrost
  опции профиля:
сообщение 10.5.2011, 8:43
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 4.3.2011
Из: Миасс
Пользователь №: 2468

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




Репутация:   0  


Доброе время суток всем. Я недавно работаю с БД в Qt, а именно с FireBird.
Собственно проблема в том что я не могу с помощью model->setRelation() выбрать все поля из присоединяемой таблицы.
Таблица 1 (Products):
Products (id, name, limitsid)
Таблица 2 (Limits)
Limits(limitsid, hight_min, hight_max, width_min, width_max)

.cpp
model = new QSqlRelationalTableModel(this,db);
model->setTable("PRODUCTS");
model->setRelation(2, QSqlRelation("LIMITS","LIMITSID","HIGHT_MIN"));
model->setRelation(3, QSqlRelation("LIMITS","LIMITSID","HIGHT_MAX"));
model->setRelation(4, QSqlRelation("LIMITS","LIMITSID","WIDTH_MIN"));
model->setRelation(5, QSqlRelation("LIMITS","LIMITSID","WIDTH_MAX"));
model->select();
..........................

Выбирает только Name и HIGHT_MIN. Получается с использованием QSqlRelation можно только одно поле подсоединить? И как быть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.5.2011, 11:06
Сообщение #2


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

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

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




Репутация:   94  


У тебя в таблице PRODUCTS всего 3 поля. а тебя понесло куда-то в дальние дали

Products (
id,  // 0
name, // 1
limitsid //model->setRelation(2, QSqlRelation("LIMITS","LIMITSID","HIGHT_MIN"));
)
А остальные setRelation, куда ты пытаешься отобразить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lifrost
  опции профиля:
сообщение 10.5.2011, 11:17
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 4.3.2011
Из: Миасс
Пользователь №: 2468

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 10.5.2011, 14:06) *
У тебя в таблице PRODUCTS всего 3 поля. а тебя понесло куда-то в дальние дали

Products (
id,  // 0
name, // 1
limitsid //model->setRelation(2, QSqlRelation("LIMITS","LIMITSID","HIGHT_MIN"));
)
А остальные setRelation, куда ты пытаешься отобразить?


Я так пробовал, но мне нужно чтобы результат был:
Name | HIGHT_MIN | HIGHT_MAX | WIDTH_MIN | WIDTH_MAX |

А то что limitsid // 2ое по счету это я понял

И как мне добиться такого результат? Я пробовал QSqlQueryModel, но он только выбирает данные, а мне нужно чтобы их можно было редактировать...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.5.2011, 11:45
Сообщение #4


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

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

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




Репутация:   94  


Цитата(lifrost @ 10.5.2011, 14:17) *
а мне нужно чтобы их можно было редактировать
тогда только свою модель писать.

П.С.
начнёшь писать, поймёшь почему нет стандартного решения
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lifrost
  опции профиля:
сообщение 10.5.2011, 11:48
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 4.3.2011
Из: Миасс
Пользователь №: 2468

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 10.5.2011, 14:45) *
Цитата(lifrost @ 10.5.2011, 14:17) *
а мне нужно чтобы их можно было редактировать
тогда только свою модель писать.

П.С.
начнёшь писать, поймёшь почему нет стандартного решения


Мда....так я и думал. Ну хорошо, спасибо за ответы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 25.11.2024, 12:49