]> Some of my projects - localmylist.git/commitdiff
Move error checking to one function
authorAPTX <marek321@gmail.com>
Sat, 14 Jul 2012 14:48:30 +0000 (16:48 +0200)
committerAPTX <marek321@gmail.com>
Sat, 14 Jul 2012 14:48:30 +0000 (16:48 +0200)
localmylist/database.cpp
localmylist/database.h

index a6317c2c35686e7bf0763f866cda2349e0f90e88..f55442f7abaae74e0715c086476294546bee1988 100644 (file)
@@ -1327,67 +1327,48 @@ QSqlQuery &Database::prepare(const char *const sql)
        if (it != d->preparedQueries.end())
                return it.value();
 
-
        QSqlQuery query(d->db);
-
        if (!query.prepare(sql))
-       {
-               qDebug() << "SQL error: " << query.lastError().type();
-               qDebug() << "Message:   " << query.lastError().text();
-               qDebug() << "DB Message:" << query.lastError().databaseText();
-               qDebug() << "Query:     " << query.executedQuery();
-
-               if (query.lastError().type() == QSqlError::ConnectionError)
-                       disconnect();
-       }
+               checkError(query);
 
        auto ite = d->preparedQueries.insert(sql, query);
        return ite.value();
 }
 
-
 bool Database::exec(QSqlQuery &query)
 {
        Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread");
-       bool result = query.exec();
-       if (result)
-               return result;
-
-       qDebug() << "SQL error: " << query.lastError().type();
-       qDebug() << "Message:   " << query.lastError().text();
-       qDebug() << "DB Message:" << query.lastError().databaseText();
-       qDebug() << "Query:     " << query.executedQuery();
 
-       if (query.lastError().type() == QSqlError::ConnectionError)
-               disconnect();
-       return result;
+       if (!query.exec())
+               return checkError(query);
+       return true;
 }
 
 bool Database::exec(const QString &sql)
 {
        Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread");
-       bool result = false;
-       bool connectionError = false;
 
-       {
-               QSqlQuery query(d->db);
-               result = query.exec(sql);
+       QSqlQuery query(d->db);
 
-               if (result)
-                       return result;
+       if (!query.exec(sql))
+               return checkError(query);
+       return true;
+}
 
-               qDebug() << "SQL error: " << query.lastError().type();
-               qDebug() << "Message:   " << query.lastError().text();
-               qDebug() << "DB Message:" << query.lastError().databaseText();
-               qDebug() << "Query:     " << query.executedQuery();
+bool Database::checkError(QSqlQuery &query)
+{
+       if (query.lastError().type() == QSqlError::NoError)
+               return true;
 
-               connectionError = query.lastError().type() == QSqlError::ConnectionError;
-       }
+       qDebug() << "SQL error: " << query.lastError().type();
+       qDebug() << "Message:   " << query.lastError().text();
+       qDebug() << "DB Message:" << query.lastError().databaseText();
+       qDebug() << "Query:     " << query.executedQuery();
 
-       if (connectionError)
+       if (query.lastError().type() == QSqlError::ConnectionError)
                disconnect();
 
-       return result;
+       return false;
 }
 
 bool Database::notify(const QString &notification)
index 779e661e26d8153f34e21268cd0efc6254959e9d..321c05f2d2c055b6fedbbc04f851d0ad1c3151b6 100644 (file)
@@ -320,6 +320,7 @@ private slots:
 private:
        void prepareQueries();
 
+       bool checkError(QSqlQuery &query);
        OpenFileData readOpenFileData(QSqlQuery &q);
 
        DatabaseInternal *d;