diff --git a/src/EditTableDialog.cpp b/src/EditTableDialog.cpp index 4915c1c5..7e143e1c 100644 --- a/src/EditTableDialog.cpp +++ b/src/EditTableDialog.cpp @@ -18,7 +18,7 @@ EditTableDialog::EditTableDialog(DBBrowserDB& db, const QString& tableName, bool curTable(tableName), m_table(tableName), m_bNewTable(createTable), - m_sRestorePointName(sqlb::escapeIdentifier(QString("edittable_%1_save_%2").arg(curTable).arg(QDateTime::currentMSecsSinceEpoch()))) + m_sRestorePointName(pdb.generateSavepointName("edittable")) { // Create UI ui->setupUi(this); diff --git a/src/ImportCsvDialog.cpp b/src/ImportCsvDialog.cpp index 823b61a9..bac0e825 100644 --- a/src/ImportCsvDialog.cpp +++ b/src/ImportCsvDialog.cpp @@ -207,7 +207,7 @@ void ImportCsvDialog::accept() // Create a savepoint, so we can rollback in case of any errors during importing // db needs to be saved or an error will occur - QString restorepointName = QString("CSVIMPORT_%1").arg(QDateTime::currentMSecsSinceEpoch()); + QString restorepointName = pdb->generateSavepointName("csvimport"); if(!pdb->setSavepoint(restorepointName)) return rollback(this, pdb, progress, restorepointName, 0, tr("Creating restore point failed: %1").arg(pdb->lastError())); diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index 6e3616c4..94fb2798 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -280,7 +280,7 @@ bool DBBrowserDB::setSavepoint(const QString& pointname) if(savepointList.contains(pointname)) return true; - QString query = QString("SAVEPOINT %1;").arg(pointname); + QString query = QString("SAVEPOINT %1;").arg(sqlb::escapeIdentifier(pointname)); executeSQL(query, false, false); savepointList.append(pointname); emit dbChanged(getDirty()); @@ -298,7 +298,7 @@ bool DBBrowserDB::releaseSavepoint(const QString& pointname) // the operation should be successfull return true; - QString query = QString("RELEASE %1;").arg(pointname); + QString query = QString("RELEASE %1;").arg(sqlb::escapeIdentifier(pointname)); if(!executeSQL(query, false, false)) return false; // SQLite releases all savepoints that were created between @@ -316,9 +316,9 @@ bool DBBrowserDB::revertToSavepoint(const QString& pointname) if(!isOpen() || savepointList.contains(pointname) == false) return false; - QString query = QString("ROLLBACK TO SAVEPOINT %1;").arg(pointname); + QString query = QString("ROLLBACK TO SAVEPOINT %1;").arg(sqlb::escapeIdentifier(pointname)); executeSQL(query, false, false); - query = QString("RELEASE %1;").arg(pointname); + query = QString("RELEASE %1;").arg(sqlb::escapeIdentifier(pointname)); executeSQL(query, false, false); // SQLite releases all savepoints that were created between // creation of given savepoint and releasing of it, @@ -684,7 +684,7 @@ bool DBBrowserDB::executeMultiSQL(const QString& statement, bool dirty, bool log QString savepoint_name; if(dirty) { - savepoint_name = sqlb::escapeIdentifier(generateSavepointName("execmultisql")); + savepoint_name = generateSavepointName("execmultisql"); setSavepoint(savepoint_name); } @@ -1044,7 +1044,8 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const sqlb::Table& tabl } // Create savepoint to be able to go back to it in case of any error - if(!setSavepoint("sqlitebrowser_rename_column")) + QString savepointName = generateSavepointName("renamecolumn"); + if(!setSavepoint(savepointName)) { lastErrorMessage = tr("renameColumn: creating savepoint failed. DB says: %1").arg(lastErrorMessage); return false; @@ -1096,7 +1097,7 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const sqlb::Table& tabl if(!executeSQL(newSchema.sql(), true, true)) { QString error(tr("renameColumn: creating new table failed. DB says: %1").arg(lastErrorMessage)); - revertToSavepoint("sqlitebrowser_rename_column"); + revertToSavepoint(savepointName); lastErrorMessage = error; return false; } @@ -1105,7 +1106,7 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const sqlb::Table& tabl if(!executeSQL(QString("INSERT INTO sqlitebrowser_rename_column_new_table SELECT %1 FROM %2;").arg(select_cols).arg(sqlb::escapeIdentifier(tablename)))) { QString error(tr("renameColumn: copying data to new table failed. DB says:\n%1").arg(lastErrorMessage)); - revertToSavepoint("sqlitebrowser_rename_column"); + revertToSavepoint(savepointName); lastErrorMessage = error; return false; } @@ -1148,7 +1149,7 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const sqlb::Table& tabl if(!executeSQL(QString("DROP TABLE %1;").arg(sqlb::escapeIdentifier(tablename)), true, true)) { QString error(tr("renameColumn: deleting old table failed. DB says: %1").arg(lastErrorMessage)); - revertToSavepoint("sqlitebrowser_rename_column"); + revertToSavepoint(savepointName); lastErrorMessage = error; return false; } @@ -1156,7 +1157,7 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const sqlb::Table& tabl // Rename the temporary table if(!renameTable("sqlitebrowser_rename_column_new_table", tablename)) { - revertToSavepoint("sqlitebrowser_rename_column"); + revertToSavepoint(savepointName); return false; } @@ -1179,7 +1180,7 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const sqlb::Table& tabl } // Release the savepoint - everything went fine - if(!releaseSavepoint("sqlitebrowser_rename_column")) + if(!releaseSavepoint(savepointName)) { lastErrorMessage = tr("renameColumn: releasing savepoint failed. DB says: %1").arg(lastErrorMessage); return false;