8 #include <QtCore/QVariant>
9 #include <QtSql/QSqlDatabase>
11 #include <Cutelyst/cutelyst_global.h>
12 #include <Cutelyst/paramsmultimap.h>
35 explicit Transaction(
const QString &databaseName = QString());
39 bool transaction()
const;
45 bool m_transactionRunning;
53 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QVariantHash queryToHashObject(QSqlQuery &query);
60 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QVariantList queryToHashList(QSqlQuery &query);
67 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QVariantMap queryToMapObject(QSqlQuery &query);
73 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QJsonObject queryToJsonObject(QSqlQuery &query);
81 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QVariantList queryToMapList(QSqlQuery &query);
86 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QJsonArray queryToJsonObjectArray(QSqlQuery &query);
92 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QVariantList queryToList(QSqlQuery &query);
98 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QJsonArray queryToJsonArray(QSqlQuery &query);
105 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QVariantHash queryToIndexedHash(QSqlQuery &query,
const QString &key);
112 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QJsonObject queryToIndexedJsonObject(QSqlQuery &query,
const QString &key);
119 CUTELYST_PLUGIN_UTILS_SQL_EXPORT
void bindParamsToQuery(QSqlQuery &query,
const Cutelyst::ParamsMultiMap ¶ms,
bool htmlEscaped =
true);
136 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QSqlQuery preparedQuery(
const QString &query, QSqlDatabase db = QSqlDatabase(),
bool forwardOnly =
false);
141 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QString databaseNameThread(
const QString &dbName = QString());
146 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QSqlDatabase databaseThread(
const QString &dbName = QString());
164 CUTELYST_PLUGIN_UTILS_SQL_EXPORT QSqlQuery preparedQueryThread(
const QString &query,
const QString &dbName = QString(),
bool forwardOnly =
false);
169 # define CPreparedSqlQueryForDatabase(str, db) \
170 ([]() -> QSqlQuery { \
171 static thread_local QSqlQuery query_temp = \
172 Cutelyst::Sql::preparedQuery(str, db); \
177 # define CPreparedSqlQuery(str) \
178 ([]() -> QSqlQuery { \
179 static QSqlQuery query_temp = \
180 Cutelyst::Sql::preparedQuery(str); \
185 # define CPreparedSqlQueryThread(str) \
186 ([]() -> QSqlQuery { \
187 static thread_local QSqlQuery query_temp = \
188 Cutelyst::Sql::preparedQueryThread(str); \
193 # define CPreparedSqlQueryThreadForDB(str, db) \
194 ([]() -> QSqlQuery { \
195 static thread_local QSqlQuery query_temp = \
196 Cutelyst::Sql::preparedQueryThread(str, db); \
201 # define CPreparedSqlQueryForDatabaseFO(str, db) \
202 ([]() -> QSqlQuery { \
203 static thread_local QSqlQuery query_temp = \
204 Cutelyst::Sql::preparedQuery(str, db, true); \
209 # define CPreparedSqlQueryFO(str) \
210 ([]() -> QSqlQuery { \
211 static QSqlQuery query_temp = \
212 Cutelyst::Sql::preparedQuery(str, QSqlDatabase(), true); \
217 # define CPreparedSqlQueryThreadFO(str) \
218 ([]() -> QSqlQuery { \
219 static thread_local QSqlQuery query_temp = \
220 Cutelyst::Sql::preparedQueryThread(str, QString(), true); \
225 # define CPreparedSqlQueryThreadForDBFO(str, db) \
226 ([]() -> QSqlQuery { \
227 static thread_local QSqlQuery query_temp = \
228 Cutelyst::Sql::preparedQueryThread(str, db, true); \
The Transaction class - This is a helper class to create scoped transactions.
The Cutelyst namespace holds all public Cutelyst API.
QMultiMap< QString, QString > ParamsMultiMap