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

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

Вот мой код:

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

Таблица "жанры" содержит "id целочисленного первичного ключа, тип 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 ответ

Решение

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

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

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

Другие вопросы по тегам