Russian Qt Forum

Qt => Базы данных => Тема начата: aliks-os от Ноябрь 27, 2009, 12:26



Название: QSqlRelationalTableModel
Отправлено: 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());

Подскажите пожалуйста, как мне получать не значение которые получается в результате связывание, а индентификатор по которому производится связывание таблиц


Название: Re: QSqlRelationalTableModel
Отправлено: cya-st от Ноябрь 27, 2009, 12:47
Вообще то я не очень понял вопрос.

Код:
QSqlRecord rec = table1.record();
table1.value(rec.indexOf("id")).toString();


Название: Re: QSqlRelationalTableModel
Отправлено: aliks-os от Ноябрь 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 из первой таблицы


Название: Re: QSqlRelationalTableModel
Отправлено: cya-st от Ноябрь 27, 2009, 16:23
Объеденить через QSqlQuery подойдет?


Название: Re: QSqlRelationalTableModel
Отправлено: cya-st от Ноябрь 27, 2009, 16:30
Объеденить через QSqlQuery подойдет?
Тоесть простой SQL - запрос.
Если тебе нужно выводить две таблицы (главная подчиненная), то надо правильно соединить таблицы и выводить поля с соответствующей таблицы.


Название: Re: QSqlRelationalTableModel
Отправлено: aliks-os от Ноябрь 30, 2009, 09:40
Объединить через QSqlQuery конечно можно, но тогда комбо-боксы через связанные ключи выскакивать не будут, так что это не подходит однозначно  ;D


Название: Re: QSqlRelationalTableModel
Отправлено: cya-st от Ноябрь 30, 2009, 11:52
Покажи код, как ты связываеш таблицы.