Wrap reindex into transaction
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user