diff --git a/src/generators/postgresqlgenerator.cpp b/src/generators/postgresqlgenerator.cpp index a791922..722fd1d 100644 --- a/src/generators/postgresqlgenerator.cpp +++ b/src/generators/postgresqlgenerator.cpp @@ -122,5 +122,11 @@ QString PostgreSqlGenerator::diff(FieldModel *oldField, FieldModel *newField) return sql; } +void PostgreSqlGenerator::replaceTableNames(QString &command) +{ + foreach (TableModel *m, TableModel::allModels()) + command = command + .replace("[" + m->className() + "]", m->name() ); +} NUT_END_NAMESPACE diff --git a/src/generators/postgresqlgenerator.h b/src/generators/postgresqlgenerator.h index 028cea4..5bc6c98 100644 --- a/src/generators/postgresqlgenerator.h +++ b/src/generators/postgresqlgenerator.h @@ -33,7 +33,9 @@ public: QString fieldType(FieldModel *field); - QString diff(FieldModel *oldField, FieldModel *newField); + QString diff(FieldModel *oldField, FieldModel *newField); + + void replaceTableNames(QString &command); }; NUT_END_NAMESPACE diff --git a/src/generators/sqlgeneratorbase_p.h b/src/generators/sqlgeneratorbase_p.h index 35a545d..643d82a 100644 --- a/src/generators/sqlgeneratorbase_p.h +++ b/src/generators/sqlgeneratorbase_p.h @@ -128,6 +128,11 @@ public: 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); + + + virtual void replaceTableNames(QString &command); + virtual void removeTableNames(QString &command); + protected: QString createConditionalPhrase(const PhraseData *d) const; QString createFieldPhrase(const PhraseList &ph); @@ -137,8 +142,6 @@ protected: QString agregateText(const AgregateType &t, const QString &arg = QString()) const; QString fromTableText(const QString &tableName, QString &joinClassName, QString &orderBy) const; // QString createWhere(QList &wheres); - void replaceTableNames(QString &command); - void removeTableNames(QString &command); }; NUT_END_NAMESPACE diff --git a/src/generators/sqlservergenerator.cpp b/src/generators/sqlservergenerator.cpp index 60237e5..de788d8 100644 --- a/src/generators/sqlservergenerator.cpp +++ b/src/generators/sqlservergenerator.cpp @@ -141,4 +141,11 @@ void SqlServerGenerator::appendSkipTake(QString &sql, int skip, int take) .arg(skip).arg(take)); } +void SqlServerGenerator::replaceTableNames(QString &command) +{ + foreach (TableModel *m, TableModel::allModels()) + command = command + .replace("[" + m->className() + "]", m->name() ); +} + NUT_END_NAMESPACE diff --git a/src/generators/sqlservergenerator.h b/src/generators/sqlservergenerator.h index 4ef2f7c..6bf5204 100644 --- a/src/generators/sqlservergenerator.h +++ b/src/generators/sqlservergenerator.h @@ -39,6 +39,8 @@ public: QString escapeValue(const QVariant &v) const; void appendSkipTake(QString &sql, int skip, int take); + void replaceTableNames(QString &command); + }; NUT_END_NAMESPACE diff --git a/test/common/score.h b/test/common/score.h index 02ce240..72d907b 100644 --- a/test/common/score.h +++ b/test/common/score.h @@ -15,7 +15,7 @@ class Score : public Nut::Table NUT_DECLARE_FIELD(int, score, score, setScore) NUT_FOREGION_KEY(Post, int, post, post, setPost) - NUT_FOREGION_KEY(User, int, user, user, setUser) + NUT_FOREGION_KEY(User, QUuid, author, author, setAuthor) public: Q_INVOKABLE Score(QObject *parent = Q_NULLPTR);