QSqlRelationalModel: 在我调用 setRelation(...) 之后,model 中的列似乎被 foreign 中的列替换 table

QSqlRelationalModel: After I call setRelation(...), the column in the model seem to be replaced by the column in the foreign table

setRelation(...) 后,如何获取 列的原始值 似乎已被外部 table 中的列替换?

这是我的代码:

Table "record" 包含“recordId integer, bookId integer, bookName varchar, author varchar, 类型整数、用户 ID 整数、用户名 varchar、借用日期日期、返回日期日期、记录状态整数。

Table "genres" 包含 "id integer primary key, 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);returns行table"genres"中的内容是QString而不是table中的原始值类型"record" 是整数

这里我想把第4节bookRecord的原始值赋给QVariant变量值。我该怎么做?

谁能给我一些建议?

最终还是用了一个不太优雅的方法解决了这个问题。

我新建一个QSqlquery对象,直接查询原来的table。

虽然不是很聪明,但总之,问题解决了