QSqlRelationalModel: после того, как я вызываю setRelation (...), столбец в модели кажется заменен столбцом во внешней таблице. - PullRequest
0 голосов
/ 17 июня 2020

После setRelation (...), как я могу получить исходное значение столбца , которое, кажется, уже было заменено столбцом во внешней таблице?

Вот мой код :

Таблица «запись» содержит «целое число recordId, целое число bookId, имя книги varchar, автор varchar, целое число жанра , целое число userId, переменную userName varchar, дату заимствования, дату returnDate, целое число recordState».

Таблица «жанры» содержит «id целочисленного первичного ключа, genre varchar».

    QSqlRelationalTableModel *model = new QSqlRelationalTableModel;

    model->setTable("record");

    model->setRelation(4, QSqlRelation("genres", "id", "genre"));

    QSqlRecord bookRecord = model->record(0);

    QVariant value = bookRecord->value(4);

Строка QVariant value = bookRecord->value(4); возвращает содержимое таблицы «жанры», которая является QString вместо исходное значение жанра в таблице «запись», которое является целым числом

Здесь я хочу присвоить исходное значение bookRecord в разделе 4 значению переменной QVariant. Как я могу это сделать?

Кто-нибудь может дать мне несколько советов?

1 Ответ

0 голосов
/ 19 июня 2020

В конце концов, я использовал не очень элегантный метод для решения проблемы.

Я создаю новый объект QSqlquery и напрямую запрашиваю исходную таблицу.

Не очень умно, но все равно проблема решена.

...