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() ゲッターを見てみましょう:

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