From: APTX Date: Sat, 14 Jul 2012 14:48:30 +0000 (+0200) Subject: Move error checking to one function X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=784eb4515d4e0e495fba939f31d1a55902e811a1;p=localmylist.git Move error checking to one function --- diff --git a/localmylist/database.cpp b/localmylist/database.cpp index a6317c2..f55442f 100644 --- a/localmylist/database.cpp +++ b/localmylist/database.cpp @@ -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 ¬ification) diff --git a/localmylist/database.h b/localmylist/database.h index 779e661..321c05f 100644 --- a/localmylist/database.h +++ b/localmylist/database.h @@ -320,6 +320,7 @@ private slots: private: void prepareQueries(); + bool checkError(QSqlQuery &query); OpenFileData readOpenFileData(QSqlQuery &q); DatabaseInternal *d;