From a4cfc65d4b3281d62a3f27fa71569a009da24478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Fri, 20 May 2022 22:57:36 +0200 Subject: [PATCH] Wrap reindex into transaction --- database.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/database.cpp b/database.cpp index af90f54..290f302 100644 --- a/database.cpp +++ b/database.cpp @@ -157,6 +157,7 @@ void Database::reindex(QProgressDialog *progress) { QVariantList deleteids; QSqlDatabase database = QSqlDatabase::database(); + database.transaction(); QSqlQuery files = database.exec("SELECT id,file,mtime FROM fits_files"); progress->setMaximum(files.size()); int i = 0; @@ -169,10 +170,16 @@ void Database::reindex(QProgressDialog *progress) if(!file.exists()) deleteids.append(files.value(0)); progress->setValue(i++); + if(progress->wasCanceled()) + { + database.rollback(); + return; + } } QSqlQuery deleteFiles("DELETE FROM fits_files WHERE id = ?", database); deleteFiles.bindValue(0, deleteids); deleteFiles.execBatch(); + database.commit(); } QStringList Database::getFitsKeywords()