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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlRelationalTableModel  (Прочитано 3999 раз)
aliks-os
Гость
« : Ноябрь 27, 2009, 12:26 »

Есть вот такая простая вещь

    QSqlRelationalTableModel *model = new QSqlRelationalTableModel;
    model->setTable("objects");
    model->setRelation(1, QSqlRelation("object_type","id","name"));

Соответственно в первом столбце имеется поле "name" из связанной таблицы.
Когда я делаю вот такой запрос, то я получаю "name".

QSqlRecord record = model->record(ui->tableMain->currentIndex().row());

Подскажите пожалуйста, как мне получать не значение которые получается в результате связывание, а индентификатор по которому производится связывание таблиц
« Последнее редактирование: Ноябрь 27, 2009, 12:37 от aliks-os » Записан
cya-st
Гость
« Ответ #1 : Ноябрь 27, 2009, 12:47 »

Вообще то я не очень понял вопрос.

Код:
QSqlRecord rec = table1.record();
table1.value(rec.indexOf("id")).toString();
Записан
aliks-os
Гость
« Ответ #2 : Ноябрь 27, 2009, 12:54 »

Видно коряво описал проблему, постараюсь более подробно
Есть 2 таблицы

таб1 objects
id
object_type_id

таб2 object_type
id
name

Первая таблица основная, к первой таблице по первому полю (object_type_id) присоединяю вторую таблицу.
Проблема, когда я пишу

QSqlRecord record = model->record(ui->tableMain->currentIndex().row());
record.value(1).toString();

то получаю значение name из второй таблицы.
а мне нужно получить значение object_type_id из первой таблицы
Записан
cya-st
Гость
« Ответ #3 : Ноябрь 27, 2009, 16:23 »

Объеденить через QSqlQuery подойдет?
Записан
cya-st
Гость
« Ответ #4 : Ноябрь 27, 2009, 16:30 »

Объеденить через QSqlQuery подойдет?
Тоесть простой SQL - запрос.
Если тебе нужно выводить две таблицы (главная подчиненная), то надо правильно соединить таблицы и выводить поля с соответствующей таблицы.
Записан
aliks-os
Гость
« Ответ #5 : Ноябрь 30, 2009, 09:40 »

Объединить через QSqlQuery конечно можно, но тогда комбо-боксы через связанные ключи выскакивать не будут, так что это не подходит однозначно  Смеющийся
Записан
cya-st
Гость
« Ответ #6 : Ноябрь 30, 2009, 11:52 »

Покажи код, как ты связываеш таблицы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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