#include <QSqlDriver>
#include <QVariant>
#include <QThread>
-#include <algorithm>
-
#include <QDebug>
namespace LocalMyList {
{
Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread");
- if (!isConnected())
+ if (!d->db.isOpen())
{
- auto keyIt = std::find_if(d->preparedQueries.constBegin(), d->preparedQueries.constEnd(),
- [&](const QSqlQuery &a) { return &a == &query;});
-
- Q_ASSERT(keyIt != d->preparedQueries.constEnd());
-
- auto key = keyIt.key();
- auto values = query.boundValues();
-
- query = prepare(key);
-
- for (auto it = values.constBegin(); it != values.constEnd(); ++it)
- query.bindValue(it.key(), it.value());
+ disconnect();
+ if (!connect())
+ return false;
- return retryExec(query, false);
+ return retryExec(query, true);
}
if (!query.exec())
{
Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread");
- if (!isConnected())
+ if (!d->db.isOpen())
{
disconnect();
if (!connect())