QEloquent 1.1.0
Qt most flexible ORM.
Loading...
Searching...
No Matches
query.h
1#ifndef QELOQUENT_QUERY_H
2#define QELOQUENT_QUERY_H
3
4#include <QEloquent/global.h>
5
6#include <QSharedDataPointer>
7
8namespace QEloquent {
9
10class Connection;
11class Driver;
12
13class ModelQueryData;
14class QELOQUENT_EXPORT Query
15{
16public:
17 Query();
18 Query(const Query &);
19 Query(Query &&);
20 Query &operator=(const Query &);
21 Query &operator=(Query &&);
22 ~Query();
23
24 QString tableName() const;
25 Query &table(const QString &tableName);
26
27 bool hasRawSql() const;
28 QString rawSql() const;
29 Query &raw(const QString &statement);
30
31 Query &where(const QString &field, const QVariant &value) { return andWhere(field, "=", value); }
32 Query &where(const QString &field, const QString &op, const QVariant &value) { return andWhere(field, op, value); }
33 Query &where(const QString &expression) { return andWhere(expression); }
34
35 Query &andWhere(const QString &field, const QVariant &value) { return andWhere(field, "=", value); }
36 Query &andWhere(const QString &field, const QString &op, const QVariant &value);
37 Query &andWhere(const QString &expression);
38
39 Query &orWhere(const QString &field, const QVariant &value) { return orWhere(field, "=", value); }
40 Query &orWhere(const QString &field, const QString &op, const QVariant &value);
41 Query &orWhere(const QString &expression);
42
43 Query &join(const QString &table, const QString &first, const QString &op, const QString &second, const QString &type = "INNER");
44
45 Query &groupBy(const QString &field);
46
47 Query &orderBy(const QString &field, Qt::SortOrder order = Qt::DescendingOrder);
48
49 Query &page(int page, int countPerPage = 20);
50 Query &limit(int limit);
51 Query &offset(int offset);
52
53 Query &with(const QString &relation);
54 Query &with(const QStringList &relations);
55
56 Connection connection() const;
57 QString connectionName() const;
58 Query &connection(const QString &connectionName);
59
60 bool hasJoins() const;
61 QString joinClauses() const;
62 QString joinClauses(const Connection &connection) const;
63 QString joinClauses(const Driver *driver) const;
64
65 bool hasWhere() const;
66 QString whereClause() const;
67 QString whereClause(const Connection &connection) const;
68 QString whereClause(const Driver *driver) const;
69
70 bool hasGroupBy() const;
71 QString groupByClause() const;
72 QString groupByClause(const Connection &connection) const;
73 QString groupByClause(const Driver *driver) const;
74
75 bool hasOrderBy() const;
76 QString orderByClause() const;
77 QString orderByClause(const Connection &connection) const;
78 QString orderByClause(const Driver *driver) const;
79
80 QString limitClause() const;
81 QString offsetClause() const;
82
83 QString toString() const;
84 QString toString(const Connection &connection) const;
85 QString toString(const Driver *driver) const;
86
87 QStringList relations() const;
88
89private:
90 QSharedDataPointer<ModelQueryData> data;
91};
92
93} // namespace QEloquent
94
95#endif // QELOQUENT_QUERY_H
Manages database connections and transactions.
Definition connection.h:22
Fluent SQL query builder.
Definition query.h:15