-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsql_builder.h
56 lines (46 loc) · 1.3 KB
/
sql_builder.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef SQL_BUILDER_H
#define SQL_BUILDER_H
#include <QString>
#include <QStringList>
#include <QVariantMap>
#include <QSqlError>
#include "database_connection.h"
namespace SQLBuilder{
class SqlBuilder
{
protected:
QString sql;
QString table;
QVariantMap params;
QStringList columns;
public:
SqlBuilder(QString table);
SqlBuilder* select(QStringList columns = {"*"});
SqlBuilder* where(QString column, QString sqlOperator, QVariantList values);
SqlBuilder* where(QString query);
SqlBuilder* insert(const QVariantMap mapColumnToValue);
SqlBuilder* destroy();
SqlBuilder* update(const QVariantMap mapColumnToValue);
SqlBuilder* join(QString query, QString join_type = "LEFT");
SqlBuilder* group_by(QString column);
bool executed(int outputMode=DebugMode::DebugErrors);
QSqlQuery execute(int debugMode=DebugMode::DebugErrors,int* lastInsertId = nullptr);
QVariant rows(int outputMode=RowOutput::Map, int debugMode=DebugMode::DebugErrors);
QStringList tableColumns();
QString getTableName();
void setSql(QString sql);
QString getSql();
void cleanSql();
enum DebugMode {
DebugNothing,
DebugErrors,
DebugAll
};
enum RowOutput {
Grid,
SingleList,
Map
};
};
}
#endif // SQL_BUILDER_H