Herunterladen als
root/src/query.h @ 2ee5022f
5d93390e | Christian Ehringfeld | #ifndef QUERY_H
|
|
#define QUERY_H
|
|||
#include <QString>
|
|||
#include <QHash>
|
|||
#include <QVariant>
|
|||
#include <QLinkedList>
|
|||
#include "join.h"
|
|||
namespace CuteEntityManager {
|
|||
2ee5022f | Christian Ehringfeld | class Condition;
|
|
class Query {
|
|||
public:
|
|||
5d93390e | Christian Ehringfeld | Query();
|
|
QStringList getSelect() const;
|
|||
void setSelect(const QStringList &value);
|
|||
QString getSelectOption() const;
|
|||
void setSelectOption(const QString &value);
|
|||
bool getDistinct() const;
|
|||
void setDistinct(bool value);
|
|||
QStringList getFrom() const;
|
|||
void setFrom(const QStringList &value);
|
|||
QStringList getGroupBy() const;
|
|||
void setGroupBy(const QStringList &value);
|
|||
QStringList getOrderBy() const;
|
|||
void setOrderBy(const QStringList &value);
|
|||
QList<Join> getJoins() const;
|
|||
void setJoins(const QList<Join> &value);
|
|||
void appendParam(const QString &column, QVariant value);
|
|||
QHash<QString, QVariant> getParams() const;
|
|||
void setParams(const QHash<QString, QVariant> &value);
|
|||
uint getLimit() const;
|
|||
void setLimit(const uint &value);
|
|||
uint getOffset() const;
|
|||
void setOffset(const uint &value);
|
|||
void appendCondition(const QString &condition);
|
|||
2ee5022f | Christian Ehringfeld | void appendCondition(const Condition &condition);
|
|
QLinkedList<Condition> getConditions() const;
|
|||
void setConditions(const QLinkedList<Condition> &value);
|
|||
5d93390e | Christian Ehringfeld | ||
2ee5022f | Christian Ehringfeld | private:
|
|
5d93390e | Christian Ehringfeld | QStringList select;
|
|
QString selectOption = QStringLiteral("");
|
|||
bool distinct = false;
|
|||
QStringList from;
|
|||
QStringList groupBy;
|
|||
QStringList orderBy;
|
|||
2ee5022f | Christian Ehringfeld | QLinkedList<Condition> conditions;
|
|
5d93390e | Christian Ehringfeld | QList<Join> joins;
|
|
QHash<QString, QVariant> params;
|
|||
2ee5022f | Christian Ehringfeld | uint limit = 0;
|
|
uint offset = 0;
|
|||
5d93390e | Christian Ehringfeld | };
|
|
enum class JokerPosition {
|
|||
FRONT, // e.g. "%foo"
|
|||
BEHIND, // e.g. "foo%"
|
|||
584721e5 | Christian Ehringfeld | BOTH, // e.g. "%foo%"
|
|
NONE
|
|||
5d93390e | Christian Ehringfeld | };
|
|
}
|
|||
#endif // QUERY_H
|