C++ Web Framework  3.0
sqlquery.h
1 /*
2  Copyright 2017 Herik Lima de Castro and Marcelo Medeiros Eler
3  Distributed under MIT license, or public domain if desired and
4  recognized in your jurisdiction.
5  See file LICENSE for detail.
6 */
7 
8 #ifndef SQLQUERY_H
9 #define SQLQUERY_H
10 
11 #include <QVector>
12 #include <QSqlQuery>
13 #include <QSqlRecord>
14 #include <QJsonArray>
15 #include <QJsonObject>
16 #include <QJsonValue>
17 #include <QJsonDocument>
18 #include "sqldatabasestorage.h"
19 
20 CWF_BEGIN_NAMESPACE
21 
25 class CPPWEBFRAMEWORKSHARED_EXPORT SqlQuery : public QSqlQuery
26 {
27  QVector<QString> columns;
28 
29  void loadColumns();
30 
31  void makeBinds(const QVector<QVariant> &col, const QString &sql);
32 
33  QJsonObject validate(const QJsonObject &json, const QString &table);
34 public:
35  using QSqlQuery::QSqlQuery;
40  explicit SqlQuery(SqlDatabaseStorage &dbStorage);
45  QJsonObject exec();
50  QJsonObject exec(const QString &query);
57  QJsonArray toJson();
65  QJsonObject deleteRecord(const QString &table, const QString &condition);
73  QJsonObject insertFromJson(const QJsonObject &json, const QString &table);
81  QJsonObject updateFromJson(const QJsonObject &json, const QString &table, const QString &condition);
82 };
83 
84 CWF_END_NAMESPACE
85 
86 #endif // SQLQUERY_H
The SqlDatabaseStorage class allows you to reuse connections made to the database through the QSqlDat...
Definition: sqldatabasestorage.h:22
The SqlQuery class was created to facilitate integration with SqlDataBaseStorage and manipulation to ...
Definition: sqlquery.h:25