QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCSqlHelper.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QString>
4#include <QtSql/QSqlDatabase>
5#include <QtSql/QSqlQuery>
6
7#include <atomic>
8
10namespace QGCSqlHelper {
11
12// ── LIKE wildcard escaping ─────────────────────────────────────────────
15[[nodiscard]] QString escapeLikePattern(const QString& text);
16
17// ── SQLite PRAGMA helpers ──────────────────────────────────────────────
19void applySqlitePragmas(QSqlDatabase& db);
20
21// ── Scoped connection RAII ─────────────────────────────────────────────
27{
28public:
31 explicit ScopedConnection(const QString& dbPath, bool readOnly = false);
33
36
37 [[nodiscard]] bool isValid() const { return _valid; }
38 [[nodiscard]] QSqlDatabase database() const;
39
40private:
41 QString _connName;
42 bool _valid = false;
43
44 static std::atomic<int> s_connId;
45};
46
47} // namespace QGCSqlHelper
ScopedConnection & operator=(const ScopedConnection &)=delete
ScopedConnection(const ScopedConnection &)=delete
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.