0

Is it safe to use default database connection from different threads? Like this:

bool upSafe(const QString &mig_to, const QString &mig_from) const {
  if (!QSqlDatabase::database().transaction()) {
    qCCritical(hfCoreMT) << "Failed init database transaction";
    return false;
  }

  if (!up(mig_to, mig_from)) {
    QSqlDatabase::database().rollback();
    return false;
  }

  return QSqlDatabase::database().commit();
}

In function up default QSQLQuery created and executed. Maybe some hints to the right pattern?

4

1 回答 1

2

QSqlDatabase(代表一个 DB 连接)不可重入。您只能使用您创建的线程中的连接。如果您需要从另一个线程执行查询,则需要先从该线程创建另一个连接。

于 2018-05-30T07:07:44.563 回答