1#ifndef QX_SQLDATABASE_H
2#define QX_SQLDATABASE_H
5#include "qx/sql/qx_sql_export.h"
9#include <QReadWriteLock>
14#include "qx/sql/qx-sqlschemareport.h"
18using namespace Qt::StringLiterals;
41 QString mDatabaseName;
51 QMetaObject::Connection mThreadCloseConnection;
69 static QString connectionName(QStringView
id,
const QThread* thread);
70 static bool closeConnection(
const QString& connectionName);
71 static bool closeConnection(QStringView
id,
const QThread* thread);
75 void closeAllConnections();
76 QString connectionName(
const QThread* thread)
const;
84 bool closeConnection();
87 SqlError checkSchema(SqlSchemaReport& report, SqlSchemaReport::StrictnessFlags strictness = SqlSchemaReport::Lenient)
93 report = SqlSchemaReport::generate<
First, Rest...>(db, strictness);
107 q.
SELECT(std::forward<First>(fs), std::forward(s)...);
147 q.
INSERT_INTO(table, std::forward<First>(fs), std::forward<Rest>(s)...);
151 template<sql_
stringable First>
159 template<sql_
stringable First>
163 q.
UPDATE(std::forward<First>(fs));
167 template<QxSql::sql_struct Struct>
Derived & SELECT_DISTINCT(First &&fsel, Rest &&... sel)
Definition qx-sqlquery.h:382
Derived & SELECT(First &&fsel, Rest &&... sel)
Definition qx-sqlquery.h:376
The SqlDatabase class provides straightforward access to an SQL database.
Definition qx-sqldatabase.h:36
QString driver() const
Definition qx-sqldatabase.cpp:217
SqlError connect()
Definition qx-sqldatabase.cpp:212
SqlDatabase(const QString &databaseName, const QString &driver)
Definition qx-sqldatabase.cpp:56
SqlDmlQuery UPDATE()
Definition qx-sqldatabase.h:168
SqlDatabase(SqlDatabase &&other)
SqlError checkSchema(SqlSchemaReport &report, SqlSchemaReport::StrictnessFlags strictness=SqlSchemaReport::Lenient)
Definition qx-sqldatabase.h:87
SqlDqlQuery SELECT(First &&fs, Rest &&... s)
Definition qx-sqldatabase.h:104
SqlDatabase & operator=(SqlDatabase &&other)
SqlDmlQuery INSERT_INTO(const SqlString &table, First &&fs, Rest &&... s)
Definition qx-sqldatabase.h:144
SqlDmlQuery MERGE_INTO(First &&fs)
Definition qx-sqldatabase.h:152
SqlDmlQuery UPDATE(First &&fs)
Definition qx-sqldatabase.h:160
SqlDmlQuery DELETE()
Definition qx-sqldatabase.h:136
bool isConnected() const
Definition qx-sqldatabase.cpp:228
SqlError database(QSqlDatabase &db, bool connect=true)
Definition qx-sqldatabase.cpp:159
QString databaseName() const
Definition qx-sqldatabase.cpp:222
SqlDqlQuery SELECT()
Definition qx-sqldatabase.h:120
SqlDqlQuery SELECT_DISTINCT(First &&fs, Rest &&... s)
Definition qx-sqldatabase.h:112
SqlDqlQuery SELECT_DISTINCT()
Definition qx-sqldatabase.h:128
The SqlDmlQuery class represents SQL queries that fit into the data manipulation language sub-languag...
Definition qx-sqlquery.h:531
auto & MERGE_INTO(First &&fs)
auto & INSERT_INTO(const SqlString &table, First &&first, Rest &&... rest)
Definition qx-sqlquery.h:544
auto & UPDATE(First &&fs)
The SqlDqlQuery class represents SQL queries that fit into the data query language sub-language.
Definition qx-sqlquery.h:410
The SqlError class is used to report errors related to database configuration and SQL queries.
Definition qx-sqlerror.h:21
The SqlString class is a convenience class for more easily building SQL statements in a natural manne...
Definition qx-sqlstring.h:36
Specifies that a type is a SQL-tied struct.
Definition qx-sqlconcepts.h:42
Specifies that a type can be converted to SqlString, or used to construct a SqlString.
Definition qx-sqlstring.h:33
The Qx namespace is the main namespace through which all non-global functionality of the Qx library i...
Definition qx-abstracterror.cpp:13
@ First
Definition qx-global.h:19
The qx-sql header file offers a straightforward interface for querying an SQL database.