3#include <QtCore/QLatin1Char>
4#include <QtCore/QStringLiteral>
5#include <QtSql/QSqlQuery>
11 QString escaped = text;
12 escaped.replace(QLatin1Char(
'\\'), QStringLiteral(
"\\\\"));
13 escaped.replace(QLatin1Char(
'%'), QStringLiteral(
"\\%"));
14 escaped.replace(QLatin1Char(
'_'), QStringLiteral(
"\\_"));
21 q.exec(QStringLiteral(
"PRAGMA journal_mode=WAL"));
22 q.exec(QStringLiteral(
"PRAGMA synchronous=NORMAL"));
27std::atomic<int> ScopedConnection::s_connId{0};
31 if (dbPath.isEmpty()) {
35 _connName = QStringLiteral(
"QGCSql_%1").arg(s_connId.fetch_add(1));
37 QSqlDatabase db = QSqlDatabase::addDatabase(QStringLiteral(
"QSQLITE"), _connName);
38 db.setDatabaseName(dbPath);
40 db.setConnectOptions(QStringLiteral(
"QSQLITE_OPEN_READONLY"));
51 if (!_connName.isEmpty()) {
53 QSqlDatabase db = QSqlDatabase::database(_connName,
false);
58 QSqlDatabase::removeDatabase(_connName);
64 return QSqlDatabase::database(_connName,
false);
ScopedConnection(const QString &dbPath, bool readOnly=false)
QSqlDatabase database() const
Lightweight SQL utilities shared across QGC components.
QString escapeLikePattern(const QString &text)
void applySqlitePragmas(QSqlDatabase &db)
Applies standard QGC pragmas: WAL journal mode + NORMAL synchronous.