skip and take new sign

This commit is contained in:
Hamed Masafi 2018-02-21 19:11:45 +03:30
parent 103cb49214
commit 9c0df27eea
5 changed files with 16 additions and 26 deletions

View File

@ -466,6 +466,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
sql = sql.replace(_database->model().at(i)->className() + ".", sql = sql.replace(_database->model().at(i)->className() + ".",
_database->model().at(i)->name() + "."); _database->model().at(i)->name() + ".");
appendSkipTake(sql, skip, take);
replaceTableNames(sql); replaceTableNames(sql);
return sql + " "; return sql + " ";
@ -495,6 +496,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
sql = sql.replace(_database->model().at(i)->className() + ".", sql = sql.replace(_database->model().at(i)->className() + ".",
_database->model().at(i)->name() + "."); _database->model().at(i)->name() + ".");
appendSkipTake(sql, skip, take);
replaceTableNames(sql); replaceTableNames(sql);
return sql + " "; return sql + " ";
@ -826,6 +828,10 @@ SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const
} }
} }
void SqlGeneratorBase::appendSkipTake(QString &sql, int skip, int take)
{
}
QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const
{ {

View File

@ -119,7 +119,7 @@ public:
virtual QVariant readValue(const QVariant::Type &type, const QVariant &dbValue); virtual QVariant readValue(const QVariant::Type &type, const QVariant &dbValue);
virtual QString phrase(const PhraseData *d) const; virtual QString phrase(const PhraseData *d) const;
virtual QString operatorString(const PhraseData::Condition &cond) const; virtual QString operatorString(const PhraseData::Condition &cond) const;
virtual void appendSkipTake(QString &sql, int skip = -1, int take = -1);
private: private:
QString createConditionalPhrase(const PhraseData *d) const; QString createConditionalPhrase(const PhraseData *d) const;
QString createFieldPhrase(const PhraseList &ph); QString createFieldPhrase(const PhraseList &ph);

View File

@ -71,24 +71,12 @@ QString SqliteGenerator::fieldType(FieldModel *field)
return dbType; return dbType;
} }
//QString SqliteGenerator::selectCommand(SqlGeneratorBase::AgregateType t, void SqliteGenerator::appendSkipTake(QString &sql, int skip, int take)
// QString agregateArg, {
// QString tableName, if (take != -1 && skip != -1)
// QList<WherePhrase> &wheres, sql.append(QString(" LIMIT %1 OFFSET %2")
// QList<WherePhrase> &orders, .arg(take)
// QList<RelationModel*> joins, .arg(skip));
// int skip, int take) }
//{
// QString command = SqlGeneratorBase::selectCommand(t, agregateArg,
// tableName,
// wheres, orders,
// joins, skip, take);
// if (take != -1 && skip != -1)
// command.append(QString(" LIMIT %1 OFFSET %2")
// .arg(take)
// .arg(skip));
// return command;
//}
NUT_END_NAMESPACE NUT_END_NAMESPACE

View File

@ -33,11 +33,7 @@ public:
QString fieldType(FieldModel *field); QString fieldType(FieldModel *field);
// QString selectCommand(AgregateType t, QString agregateArg, void appendSkipTake(QString &sql, int skip, int take);
// QString tableName,
// QList<WherePhrase> &wheres,
// QList<WherePhrase> &orders,
// QList<RelationModel *> joins, int skip, int take);
}; };
NUT_END_NAMESPACE NUT_END_NAMESPACE

View File

@ -307,7 +307,7 @@ Q_OUTOFLINE_TEMPLATE QList<F> Query<T>::select(const FieldPhrase<F> f)
d->wherePhrase, d->wherePhrase,
d->relations, d->relations,
d->skip, d->take); d->skip, d->take);
qDebug() << d->sql;
QSqlQuery q = d->database->exec(d->sql); QSqlQuery q = d->database->exec(d->sql);
while (q.next()) { while (q.next()) {