首页 > 解决方案 > QSqlRelationalModel:我调用setRelation(...)后,模型中的列似乎被外部表中的列替换了

问题描述

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

这是我的代码:

表“记录”包含“recordId 整数、bookId 整数、bookName varchar、作者 varchar、 流派整数、userId 整数、userName varchar、borrowDate 日期、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); 返回表“genres”中的内容,它是 QString,而不是表“record”中的原始值类型,它是整数

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

谁能给我一些建议?

标签: qtqsqlrelationaltablemodel

解决方案


最终,我使用了一种不太优雅的方法来解决问题。

我创建一个新QSqlquery对象并直接查询原始表。

这不是很聪明,但无论如何,问题已经解决了。


推荐阅读