同じQSQLQuery
変数を使用して複数のステートメントを実行することができますQt 5.3.2を使用SQLite?実行するたびにfinish
またはclear
関数を呼び出す必要がありますか?例えば同じQSQLQuery変数を使用して複数の文を実行できますか?
:
QSqlQuery query;
query.prepare("INSERT INTO myTable (id, name) VALUES (:id, :name)");
query.bindValue(":id", id);
query.bindValue(":name", name);
if(!query.exec())
{
qDebug() << "Error";
}
query.finish() // or query.clear()?
query.prepare("INSERT INTO myProducts (product, price) VALUES (:product, :price)");
query.bindValue(":product", product);
query.bindValue(":price", price);
if(!query.exec())
{
qDebug() << "Error";
}
query.finish() // or query.clear()?
注:私はfinish
機能を使用する必要があると思うが、私はclear
機能はありません正確に理解しませんでした。ドキュメントには次のように書かれています。
結果セットをクリアし、クエリが保持するリソースをすべて解放します。 クエリの状態を非アクティブに設定します。
実行するとどうなりますか?メモリをオフにして、finish()またはclear()を実行することなく、同じQSqlQueryを使用しました。私の推測はlastError()やisValid()のようなものは、そうしないと間違っている可能性があります。 –