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)