コードは次のとおりです。
QSqlQuery q1(db_connection), q2(db_connection);
q1.exec("SELECT * from users");
while(q1.next())
{
q2.exec("delete from table1");
if (!q2.isValid())
qDebug() << "q2 is not valid";
if (q1.isActive() && q1.isValid())
qDebug() << q1.record();
}
q1は正しいクエリです。q2は明らかに間違っています。「table1」という名前のテーブルがないからです。
取引は次のとおりです。q1がQSqlQuery::record()メソッドで間違った(空の)データを返すのに、q2がexec()された後、QSqlQuery :: value()メソッドで絶対に正しいデータを返すのはなぜですか?