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
объект и запросить исходную таблицу напрямую.
Это не очень умно, но все равно проблема решена.