X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=893bd77496df4355f97f1d522333326a9e5b35af;hp=587401368d6c2649aa7076d40408d083f2f06f5b;hb=de04705745cf92be498a1273fdc4abf84d2649c9;hpb=a453c963cf1872e14c83adf1d40a31821c166805 diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 58740136..893bd774 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -192,7 +192,7 @@ UserId SqliteStorage::addUser(const QString& user, const QString& password, cons lockForWrite(); safeExec(query); if (query.lastError().isValid() - && query.lastError().number() == 19) { // user already exists - sadly 19 seems to be the general constraint violation error... + && query.lastError().nativeErrorCode() == "19") { // user already exists - sadly 19 seems to be the general constraint violation error... db.rollback(); } else { @@ -1409,7 +1409,7 @@ bool SqliteStorage::renameBuffer(const UserId& user, const BufferId& bufferId, c error = query.lastError().isValid(); // unexepcted error occured (19 == constraint violation) - if (error && query.lastError().number() != 19) { + if (error && query.lastError().nativeErrorCode() != "19") { watchQuery(query); } else { @@ -1790,7 +1790,7 @@ bool SqliteStorage::logMessage(Message& msg) if (logMessageQuery.lastError().isValid()) { // constraint violation - must be NOT NULL constraint - probably the sender is missing... - if (logMessageQuery.lastError().number() == 19) { + if (logMessageQuery.lastError().nativeErrorCode() == "19") { QSqlQuery addSenderQuery(db); addSenderQuery.prepare(queryString("insert_sender")); addSenderQuery.bindValue(":sender", msg.sender()); @@ -2219,15 +2219,13 @@ bool SqliteStorage::safeExec(QSqlQuery& query, int retryCount) if (!query.lastError().isValid()) return true; - switch (query.lastError().number()) { - case 5: // SQLITE_BUSY 5 /* The database file is locked */ - // fallthrough - case 6: // SQLITE_LOCKED 6 /* A table in the database is locked */ + QString nativeErrorCode = query.lastError().nativeErrorCode(); + + // SQLITE_BUSY 5 /* The database file is locked */ + // SQLITE_LOCKED 6 /* A table in the database is locked */ + if (nativeErrorCode == "5" || nativeErrorCode == "6") { if (retryCount < _maxRetryCount) return safeExec(query, retryCount + 1); - break; - default: - ; } return false; }