diff --git a/src/generators/mysqlgenerator.cpp b/src/generators/mysqlgenerator.cpp index 639fc16..c33af38 100644 --- a/src/generators/mysqlgenerator.cpp +++ b/src/generators/mysqlgenerator.cpp @@ -182,7 +182,7 @@ QString MySqlGenerator::escapeValue(const QVariant &v) const // } } -QVariant MySqlGenerator::readValue(const QMetaType::Type &type, const QVariant &dbValue) +QVariant MySqlGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue) { //#ifdef QT_GUI_LIB @@ -229,7 +229,7 @@ QVariant MySqlGenerator::readValue(const QMetaType::Type &type, const QVariant & if (type == QMetaType::QDate) return dbValue.toDate(); - return SqlGeneratorBase::readValue(type, dbValue); + return SqlGeneratorBase::unescapeValue(type, dbValue); } bool MySqlGenerator::readInsideParentese(QString &text, QString &out) diff --git a/src/generators/mysqlgenerator.h b/src/generators/mysqlgenerator.h index 9584c35..847b653 100644 --- a/src/generators/mysqlgenerator.h +++ b/src/generators/mysqlgenerator.h @@ -33,7 +33,7 @@ public: QString fieldType(FieldModel *field); QString escapeValue(const QVariant &v) const; - QVariant readValue(const QMetaType::Type &type, const QVariant &dbValue); + QVariant unescapeValue(const QMetaType::Type &type, const QVariant &dbValue); // QString phrase(const PhraseData *d) const; // QString selectCommand(AgregateType t, QString agregateArg, QString tableName, QList &wheres, QList &orders, QList joins, int skip, int take); private: diff --git a/src/generators/postgresqlgenerator.cpp b/src/generators/postgresqlgenerator.cpp index c6b153c..1a0ce9e 100644 --- a/src/generators/postgresqlgenerator.cpp +++ b/src/generators/postgresqlgenerator.cpp @@ -251,7 +251,7 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const return SqlGeneratorBase::escapeValue(v); } -QVariant PostgreSqlGenerator::readValue(const QMetaType::Type &type, const QVariant &dbValue) +QVariant PostgreSqlGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue) { if (type == QMetaType::QDateTime) return dbValue.toDateTime(); @@ -263,10 +263,10 @@ QVariant PostgreSqlGenerator::readValue(const QMetaType::Type &type, const QVari return dbValue.toDate(); if (type == QMetaType::QPoint) - return SqlGeneratorBase::readValue(QMetaType::QPoint, dbValue.toString() + return SqlGeneratorBase::unescapeValue(QMetaType::QPoint, dbValue.toString() .replace("(", "").replace(")", "")); if (type == QMetaType::QPointF) - return SqlGeneratorBase::readValue(QMetaType::QPointF, dbValue.toString() + return SqlGeneratorBase::unescapeValue(QMetaType::QPointF, dbValue.toString() .replace("(", "").replace(")", "")); if (type == QMetaType::QStringList) return dbValue.toString().replace("{", "").replace("}", "") @@ -306,7 +306,7 @@ QVariant PostgreSqlGenerator::readValue(const QMetaType::Type &type, const QVari return pol; } #endif - return SqlGeneratorBase::readValue(type, dbValue); + return SqlGeneratorBase::unescapeValue(type, dbValue); } diff --git a/src/generators/postgresqlgenerator.h b/src/generators/postgresqlgenerator.h index f78549f..a631d06 100644 --- a/src/generators/postgresqlgenerator.h +++ b/src/generators/postgresqlgenerator.h @@ -41,7 +41,7 @@ public: // SqlGeneratorBase interface public: QString escapeValue(const QVariant &v) const; - QVariant readValue(const QMetaType::Type &type, const QVariant &dbValue); + QVariant unescapeValue(const QMetaType::Type &type, const QVariant &dbValue); }; NUT_END_NAMESPACE diff --git a/src/generators/sqlgeneratorbase.cpp b/src/generators/sqlgeneratorbase.cpp index 27a42e3..6a9d3d4 100644 --- a/src/generators/sqlgeneratorbase.cpp +++ b/src/generators/sqlgeneratorbase.cpp @@ -131,6 +131,11 @@ QString SqlGeneratorBase::fieldDeclare(FieldModel *field) return field->name + " " + type + (field->notNull ? " NOT NULL" : ""); } +QStringList SqlGeneratorBase::constraints(TableModel *table) +{ + return QStringList(); +} + QString SqlGeneratorBase::relationDeclare(const RelationModel *relation) { return QString("FOREIGN KEY (FK_%1) REFERENCES %2(%1)") diff --git a/src/generators/sqlgeneratorbase_p.h b/src/generators/sqlgeneratorbase_p.h index 1074431..fc35110 100644 --- a/src/generators/sqlgeneratorbase_p.h +++ b/src/generators/sqlgeneratorbase_p.h @@ -79,6 +79,9 @@ public: //fields virtual QString fieldType(FieldModel *field) = 0; virtual QString fieldDeclare(FieldModel *field); + virtual QStringList constraints(TableModel *table); + virtual QString escapeValue(const QVariant &v) const; + virtual QVariant unescapeValue(const QMetaType::Type &type, const QVariant &dbValue); virtual QString masterDatabaseName(QString databaseName); @@ -141,8 +144,6 @@ public: // virtual QString updateCommand(WherePhrase &phrase, QList &wheres, QString tableName); - virtual QString escapeValue(const QVariant &v) const; - virtual QVariant readValue(const QMetaType::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); diff --git a/src/query.h b/src/query.h index 241243f..d5b2d75 100644 --- a/src/query.h +++ b/src/query.h @@ -267,7 +267,7 @@ Q_OUTOFLINE_TEMPLATE QList Query::toList(int count) QList childFields = data.table->fields(); foreach (FieldModel *field, childFields) table->setProperty(field->name.toLatin1().data(), - d->database->sqlGenertor()->readValue( + d->database->sqlGenertor()->unescapeValue( field->type, q.value(data.table->name() + "." + field->name)));