0

是否可以修改 QSqlQuery 选择查询返回的记录?我有这样的事情:

QSqlQuery query(database);
query.prepare('Select * from `table`);
query.exec();

query.seek(15);
query.record().setValue("columName", "newValue");

我正在尝试使用 setValue 方法更改查询结果中的数据。但它不起作用。query.record().field("columnName").isReadOnly() 返回 false;

有没有可能实现我想要的?

谢谢。

升级版:

如我所见,这是不可能的。让我们看一下record() getter:

QSqlRecord QSqlQuery::record() const
{
    QSqlRecord rec = d->sqlResult->record();

    if (isValid()) {
        for (int i = 0; i < rec.count(); ++i)
            rec.setValue(i, value(i));
    }
    return rec;
}

我们得到一份真实记录的副本。也许我们应该使用 QSqlResult->record() - 但它是私有的。如果我出于我的目的将其公开,可以吗?

有什么建议吗?

4

0 回答 0