Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 373a84e2

Von Christian Ehringfeld vor etwa 8 Jahren hinzugefügt

wip

Unterschiede anzeigen:

src/querybuilder.cpp
}
QString QueryBuilder::selectBase(const QStringList &tables,
const QStringList &columns) const {
QString r = "SELECT ";
const QStringList &columns, bool withKeyword) const {
QString r = "";
if(withKeyword) {
r = "SELECT ";
}
if (columns.isEmpty()) {
r += "*";
} else {
......
entity) + this->limit(limit, offset) + ";");
}
QSqlQuery QueryBuilder::findByAttributes(const QHash<QString, QVariant> &m,
const QString &tableName,
const bool &ignoreID, const qint64 limit, const qint64 offset) const {
QSqlQuery q = this->database->getQuery(this->selectBase(QStringList(
tableName)) + this->where(m, this->andKeyword(), ignoreID) + this->limit(limit,
offset));
this->bindValues(m, q, ignoreID);
Query QueryBuilder::findByAttributes(const QHash<QString, QVariant> &m,
const QString &tableName,
const bool &ignoreID, const qint64 limit, const qint64 offset) const {
Query q = Query();
q.setSelect(QStringList(this->selectBase(QStringList(
tableName),QStringList(),false)));
q.appendWhere(Expression(this->where(m, this->andKeyword(), ignoreID, "id", false), m));
q.setLimit(limit);
q.setOffset(offset);
// QSqlQuery q = this->database->getQuery(this->selectBase(QStringList(
// tableName)) + this->where(m, this->andKeyword(), ignoreID) + this->limit(limit,
// offset));
// this->bindValues(m, q, ignoreID);
return q;
}
QSqlQuery QueryBuilder::findByAttributes(const QSharedPointer<Entity> &e,
bool ignoreID,
const qint64 limit,
const qint64 offset) {
Query QueryBuilder::findByAttributes(const QSharedPointer<Entity> &e,
bool ignoreID,
const qint64 limit,
const qint64 offset) {
QHash<QString, QVariant> values = EntityHelper::getEntityAttributes(
EntityHelper::getMetaProperties(e.data()), e);
return this->findByAttributes(values, e->getTablename(), ignoreID, limit,
......
}
QSqlQuery QueryBuilder::oneToMany(const QString &tableName,
const QString &attribute,
const qint64 &id,
const qint64 &limit) {
Query QueryBuilder::oneToMany(const QString &tableName,
const QString &attribute,
const qint64 &id,
const qint64 &limit) {
QHash<QString, QVariant> values = QHash<QString, QVariant>();
values.insert(attribute, id);
return this->findByAttributes(values, tableName, false, limit);
......
}
QString QueryBuilder::placeHolder(QString key) const {
//return QString(":" + key.replace('.', '_'));
return QString(":" + key);
return QString(":" + key.replace('.', '_'));
}
QString QueryBuilder::where(const QHash<QString, QVariant> &m,
......
}
Expression QueryBuilder::equal(QString &key, QVariant &value) {
Expression exp = Expression(this->where(key, value, false, true, false),key,value);
Expression exp = Expression(this->where(key, value, false, true, false), key, value);
return exp;
}

Auch abrufbar als: Unified diff