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() + ".",
_database->model().at(i)->name() + ".");
appendSkipTake(sql, skip, take);
replaceTableNames(sql);
return sql + " ";
@ -495,6 +496,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
sql = sql.replace(_database->model().at(i)->className() + ".",
_database->model().at(i)->name() + ".");
appendSkipTake(sql, skip, take);
replaceTableNames(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
{

View File

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

View File

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

View File

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

View File

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