diff --git a/src/nut/bulkinserter.cpp b/src/nut/bulkinserter.cpp index 1099af1..2e09278 100644 --- a/src/nut/bulkinserter.cpp +++ b/src/nut/bulkinserter.cpp @@ -1,7 +1,7 @@ #include "bulkinserter.h" #include "phrases/phraselist.h" #include "database.h" -#include "generators/sqlgeneratorbase_p.h" +#include "abstractsqlgenerator.h" #include "databasemodel.h" #include diff --git a/src/nut/bulkinserter.h b/src/nut/bulkinserter.h index 94a7bba..95af330 100644 --- a/src/nut/bulkinserter.h +++ b/src/nut/bulkinserter.h @@ -4,8 +4,8 @@ #include #include #include "defines.h" -#include "phrases/phraselist.h" -#include "phrases/fieldphrase.h" +#include "phraselist.h" +#include "fieldphrase.h" NUT_BEGIN_NAMESPACE diff --git a/src/nut/database.cpp b/src/nut/database.cpp index 8001e88..18b9ee2 100644 --- a/src/nut/database.cpp +++ b/src/nut/database.cpp @@ -35,10 +35,10 @@ #include "database_p.h" #include "defines.h" #include "tablemodel.h" -#include "generators/postgresqlgenerator.h" -#include "generators/mysqlgenerator.h" -#include "generators/sqlitegenerator.h" -#include "generators/sqlservergenerator.h" +#include "postgresqlgenerator.h" +#include "mysqlgenerator.h" +#include "sqlitegenerator.h" +#include "sqlservergenerator.h" #include "query.h" #include "changelogtable.h" @@ -512,7 +512,7 @@ void Database::setDriver(QString driver) d->driver = driver.toUpper(); } -SqlGeneratorBase *Database::sqlGenerator() const +AbstractSqlGenerator *Database::sqlGenerator() const { Q_D(const Database); return d->sqlGenerator; diff --git a/src/nut/database.h b/src/nut/database.h index 663bdca..bec2b8a 100644 --- a/src/nut/database.h +++ b/src/nut/database.h @@ -34,7 +34,7 @@ NUT_BEGIN_NAMESPACE class DatabaseModel; class DatabasePrivate; class TableSetBase; -class SqlGeneratorBase; +class AbstractSqlGenerator; class ChangeLogTable; class NUT_EXPORT Database : public QObject { @@ -70,7 +70,7 @@ public: DatabaseModel model() const; QString tableName(QString className); - SqlGeneratorBase *sqlGenerator() const; + AbstractSqlGenerator *sqlGenerator() const; QSqlDatabase database(); protected: diff --git a/src/nut/database_p.h b/src/nut/database_p.h index 1e0e867..928093b 100644 --- a/src/nut/database_p.h +++ b/src/nut/database_p.h @@ -56,7 +56,7 @@ public: QString connectionName; QString driver; - SqlGeneratorBase *sqlGenerator; + AbstractSqlGenerator *sqlGenerator; DatabaseModel currentModel; TableSet *changeLogs; diff --git a/src/nut/generators/sqlgeneratorbase.cpp b/src/nut/generators/abstractsqlgenerator.cpp similarity index 91% rename from src/nut/generators/sqlgeneratorbase.cpp rename to src/nut/generators/abstractsqlgenerator.cpp index 303d6d3..a7d43ee 100644 --- a/src/nut/generators/sqlgeneratorbase.cpp +++ b/src/nut/generators/abstractsqlgenerator.cpp @@ -25,11 +25,11 @@ #include #include -#include "sqlgeneratorbase_p.h" -#include "../database.h" -#include "../table.h" -#include "../databasemodel.h" -#include "../tablemodel.h" +#include "abstractsqlgenerator.h" +#include "database.h" +#include "table.h" +#include "databasemodel.h" +#include "tablemodel.h" #include "sqlserializer.h" NUT_BEGIN_NAMESPACE @@ -51,7 +51,7 @@ NUT_BEGIN_NAMESPACE * INNER JOIN dbo.GiftCards ON dbo.GiftTypes.GiftTypeID = dbo.GiftCards.GiftTypeID * INNER JOIN dbo.Entities ON dbo.GiftCards.GiftCardID = dbo.Entities.GiftCardID */ -bool SqlGeneratorBase::isNumeric(const QMetaType::Type &type) +bool AbstractSqlGenerator::isNumeric(const QMetaType::Type &type) { return type == QMetaType::SChar || type == QMetaType::Char @@ -66,7 +66,7 @@ bool SqlGeneratorBase::isNumeric(const QMetaType::Type &type) || type == QMetaType::ULongLong; } -SqlGeneratorBase::SqlGeneratorBase(Database *parent) +AbstractSqlGenerator::AbstractSqlGenerator(Database *parent) : QObject(parent) { if (parent) @@ -75,19 +75,19 @@ SqlGeneratorBase::SqlGeneratorBase(Database *parent) _serializer = new SqlSerializer; } -QString SqlGeneratorBase::masterDatabaseName(QString databaseName) +QString AbstractSqlGenerator::masterDatabaseName(QString databaseName) { Q_UNUSED(databaseName) return QString(); } -QString SqlGeneratorBase::createTable(TableModel *table) +QString AbstractSqlGenerator::createTable(TableModel *table) { Q_UNUSED(table) return QString(); } -QString SqlGeneratorBase::saveRecord(Table *t, QString tableName) +QString AbstractSqlGenerator::saveRecord(Table *t, QString tableName) { Q_ASSERT(!tableName.isEmpty() && !tableName.isNull()); switch (t->status()) { @@ -108,7 +108,7 @@ QString SqlGeneratorBase::saveRecord(Table *t, QString tableName) return QString(); } -QString SqlGeneratorBase::recordsPhrase(TableModel *table) +QString AbstractSqlGenerator::recordsPhrase(TableModel *table) { if (!table) return QString(); @@ -122,7 +122,7 @@ QString SqlGeneratorBase::recordsPhrase(TableModel *table) return ret; } -QString SqlGeneratorBase::insertBulk(const QString &tableName, const PhraseList &ph, const QList &vars) +QString AbstractSqlGenerator::insertBulk(const QString &tableName, const PhraseList &ph, const QList &vars) { QString sql; foreach (QVariantList list, vars) { @@ -141,7 +141,7 @@ QString SqlGeneratorBase::insertBulk(const QString &tableName, const PhraseList return sql; } -QString SqlGeneratorBase::fieldDeclare(FieldModel *field) +QString AbstractSqlGenerator::fieldDeclare(FieldModel *field) { QString type = fieldType(field); if (type.isEmpty()) @@ -157,19 +157,19 @@ QString SqlGeneratorBase::fieldDeclare(FieldModel *field) return ret; } -QStringList SqlGeneratorBase::constraints(TableModel *table) +QStringList AbstractSqlGenerator::constraints(TableModel *table) { Q_UNUSED(table) return QStringList(); } -QString SqlGeneratorBase::relationDeclare(const RelationModel *relation) +QString AbstractSqlGenerator::relationDeclare(const RelationModel *relation) { return QStringLiteral("FOREIGN KEY (FK_%1) REFERENCES %2(%1)") .arg(relation->localColumn, relation->slaveTable->name()); } -QStringList SqlGeneratorBase::diff(const DatabaseModel &lastModel, +QStringList AbstractSqlGenerator::diff(const DatabaseModel &lastModel, const DatabaseModel &newModel) { QStringList ret; @@ -192,7 +192,7 @@ QStringList SqlGeneratorBase::diff(const DatabaseModel &lastModel, return ret; } -QString SqlGeneratorBase::diff(FieldModel *oldField, FieldModel *newField) +QString AbstractSqlGenerator::diff(FieldModel *oldField, FieldModel *newField) { QString sql = QString(); if (oldField && newField) @@ -211,7 +211,7 @@ QString SqlGeneratorBase::diff(FieldModel *oldField, FieldModel *newField) return sql; } -QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) +QStringList AbstractSqlGenerator::diff(TableModel *oldTable, TableModel *newTable) { if (!newTable && !oldTable) return QStringList(); @@ -289,7 +289,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) return QStringList() << sql; } -QStringList SqlGeneratorBase::diffRelation(TableModel *oldTable, TableModel *newTable) +QStringList AbstractSqlGenerator::diffRelation(TableModel *oldTable, TableModel *newTable) { QStringList ret; if (!newTable) @@ -327,7 +327,7 @@ QStringList SqlGeneratorBase::diffRelation(TableModel *oldTable, TableModel *new return ret; } -QStringList SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel) +QStringList AbstractSqlGenerator::diff(RelationModel *oldRel, RelationModel *newRel) { QStringList ret; /* @@ -358,7 +358,7 @@ QStringList SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel) return ret; } -QString SqlGeneratorBase::join(const QString &mainTable, +QString AbstractSqlGenerator::join(const QString &mainTable, const QList &list, QStringList *order) { @@ -390,7 +390,7 @@ QString SqlGeneratorBase::join(const QString &mainTable, return ret; } -QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) +QString AbstractSqlGenerator::join(const QStringList &list, QStringList *order) { //TODO: reorder list first! //TODO: make this ungly code better and bugless :-) @@ -454,7 +454,7 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) return ret; } -QString SqlGeneratorBase::insertRecord(Table *t, QString tableName) +QString AbstractSqlGenerator::insertRecord(Table *t, QString tableName) { QString sql = QString(); auto model = _database->model().tableByName(tableName); @@ -483,7 +483,7 @@ QString SqlGeneratorBase::insertRecord(Table *t, QString tableName) return sql; } -QString SqlGeneratorBase::updateRecord(Table *t, QString tableName) +QString AbstractSqlGenerator::updateRecord(Table *t, QString tableName) { QString sql = QString(); auto model = _database->model().tableByName(tableName); @@ -506,7 +506,7 @@ QString SqlGeneratorBase::updateRecord(Table *t, QString tableName) return sql; } -QString SqlGeneratorBase::deleteRecord(Table *t, QString tableName) +QString AbstractSqlGenerator::deleteRecord(Table *t, QString tableName) { auto model = _database->model().tableByName(tableName); QString key = model->primaryKey(); @@ -516,7 +516,7 @@ QString SqlGeneratorBase::deleteRecord(Table *t, QString tableName) return sql; } -QString SqlGeneratorBase::agregateText(const AgregateType &t, +QString AbstractSqlGenerator::agregateText(const AgregateType &t, const QString &arg) const { switch (t) { @@ -541,7 +541,7 @@ QString SqlGeneratorBase::agregateText(const AgregateType &t, return QString(); // never reach } -QString SqlGeneratorBase::fromTableText(const QString &tableName, +QString AbstractSqlGenerator::fromTableText(const QString &tableName, QString &joinClassName, QString &orderBy) const { @@ -568,7 +568,7 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName, return tableNameText; } -QString SqlGeneratorBase::deleteRecords(const QString &tableName, const QString &where) +QString AbstractSqlGenerator::deleteRecords(const QString &tableName, const QString &where) { QString sql = QStringLiteral("DELETE FROM ") + tableName; @@ -580,7 +580,7 @@ QString SqlGeneratorBase::deleteRecords(const QString &tableName, const QString return sql; } -QString SqlGeneratorBase::selectCommand(const QString &tableName, +QString AbstractSqlGenerator::selectCommand(const QString &tableName, const PhraseList &fields, const ConditionalPhrase &where, const PhraseList &order, @@ -632,8 +632,8 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName, return sql + QStringLiteral(" "); } -QString SqlGeneratorBase::selectCommand(const QString &tableName, - const SqlGeneratorBase::AgregateType &t, +QString AbstractSqlGenerator::selectCommand(const QString &tableName, + const AbstractSqlGenerator::AgregateType &t, const QString &agregateArg, const ConditionalPhrase &where, const QList &joins, @@ -661,7 +661,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName, return sql + QStringLiteral(" "); } -QString SqlGeneratorBase::deleteCommand(const QString &tableName, +QString AbstractSqlGenerator::deleteCommand(const QString &tableName, const ConditionalPhrase &where) { QString command = QStringLiteral("DELETE FROM ") + tableName; @@ -679,7 +679,7 @@ QString SqlGeneratorBase::deleteCommand(const QString &tableName, return command; } -QString SqlGeneratorBase::updateCommand(const QString &tableName, +QString AbstractSqlGenerator::updateCommand(const QString &tableName, const AssignmentPhraseList &assigments, const ConditionalPhrase &where) { @@ -707,7 +707,7 @@ QString SqlGeneratorBase::updateCommand(const QString &tableName, return sql; } -QString SqlGeneratorBase::insertCommand(const QString &tableName, const AssignmentPhraseList &assigments) +QString AbstractSqlGenerator::insertCommand(const QString &tableName, const AssignmentPhraseList &assigments) { QString fieldNames; @@ -795,7 +795,7 @@ QString SqlGeneratorBase::insertCommand(const QString &tableName, const Assignme // return whereText; //} -void SqlGeneratorBase::replaceTableNames(QString &command) +void AbstractSqlGenerator::replaceTableNames(QString &command) { foreach (TableModel *m, _database->model()) command = command @@ -803,7 +803,7 @@ void SqlGeneratorBase::replaceTableNames(QString &command) + QStringLiteral("]"), m->name()); } -void SqlGeneratorBase::removeTableNames(QString &command) +void AbstractSqlGenerator::removeTableNames(QString &command) { foreach (TableModel *m, _database->model()) command = command.replace(QStringLiteral("[") @@ -811,7 +811,7 @@ void SqlGeneratorBase::removeTableNames(QString &command) + QStringLiteral("]."), QStringLiteral("")); } -QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) const +QString AbstractSqlGenerator::dateTimePartName(const PhraseData::Condition &op) const { switch (op) { case PhraseData::DatePartYear: @@ -884,7 +884,7 @@ QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) cons // return sql; //} -QString SqlGeneratorBase::escapeValue(const QVariant &v) const +QString AbstractSqlGenerator::escapeValue(const QVariant &v) const { if (v.type() == QVariant::String && v.toString().isEmpty()) return QStringLiteral("''"); @@ -901,13 +901,13 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const return QStringLiteral("'") + serialized + QStringLiteral("'"); } -QVariant SqlGeneratorBase::unescapeValue(const QMetaType::Type &type, +QVariant AbstractSqlGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue) { return _serializer->deserialize(dbValue.toString(), type); } -QString SqlGeneratorBase::phrase(const PhraseData *d) const +QString AbstractSqlGenerator::phrase(const PhraseData *d) const { QString ret = QString(); @@ -941,7 +941,7 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const } QString -SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const +AbstractSqlGenerator::operatorString(const PhraseData::Condition &cond) const { switch (cond) { case PhraseData::Equal: @@ -1005,20 +1005,20 @@ SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const } } -void SqlGeneratorBase::appendSkipTake(QString &sql, int skip, int take) +void AbstractSqlGenerator::appendSkipTake(QString &sql, int skip, int take) { Q_UNUSED(sql) Q_UNUSED(skip) Q_UNUSED(take) } -QString SqlGeneratorBase::primaryKeyConstraint(const TableModel *table) const +QString AbstractSqlGenerator::primaryKeyConstraint(const TableModel *table) const { return QStringLiteral("CONSTRAINT pk_%1 PRIMARY KEY (%2)") .arg(table->name(), table->primaryKey()); } -QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const +QString AbstractSqlGenerator::createConditionalPhrase(const PhraseData *d) const { if (!d) return QString(); @@ -1102,7 +1102,7 @@ QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const return ret; } -QString SqlGeneratorBase::createOrderPhrase(const PhraseList &ph) +QString AbstractSqlGenerator::createOrderPhrase(const PhraseList &ph) { QString ret = QString(); foreach (const PhraseData *d, ph.data) { @@ -1116,7 +1116,7 @@ QString SqlGeneratorBase::createOrderPhrase(const PhraseList &ph) return ret; } -QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph) +QString AbstractSqlGenerator::createFieldPhrase(const PhraseList &ph) { QString ret = QString(); foreach (const PhraseData *d, ph.data) { @@ -1129,7 +1129,7 @@ QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph) return ret; } -void SqlGeneratorBase::createInsertPhrase(const AssignmentPhraseList &ph, QString &fields, QString &values) +void AbstractSqlGenerator::createInsertPhrase(const AssignmentPhraseList &ph, QString &fields, QString &values) { foreach (PhraseData *d, ph.data) { if (!fields.isEmpty()) diff --git a/src/nut/generators/sqlgeneratorbase_p.h b/src/nut/generators/abstractsqlgenerator.h similarity index 95% rename from src/nut/generators/sqlgeneratorbase_p.h rename to src/nut/generators/abstractsqlgenerator.h index 821195f..8a16b56 100644 --- a/src/nut/generators/sqlgeneratorbase_p.h +++ b/src/nut/generators/abstractsqlgenerator.h @@ -18,14 +18,13 @@ ** **************************************************************************/ -#ifndef SQLGENERATORBASE_H -#define SQLGENERATORBASE_H +#ifndef NUT_ABSTRACTSQLGENERATOR_H +#define NUT_ABSTRACTSQLGENERATOR_H #include #include #include -#include "../phrase.h" -//#include "../wherephrase.h" +#include "phrase.h" class SqlSerializer; @@ -37,7 +36,7 @@ class DatabaseModel; class TableModel; class Database; struct RelationModel; -class NUT_EXPORT SqlGeneratorBase : public QObject +class NUT_EXPORT AbstractSqlGenerator : public QObject { // Q_OBJECT @@ -65,8 +64,8 @@ public: Sum }; - explicit SqlGeneratorBase(Database *parent); - virtual ~SqlGeneratorBase() = default; + explicit AbstractSqlGenerator(Database *parent); + virtual ~AbstractSqlGenerator() = default; virtual bool supportPrimaryKey(const QMetaType::Type &type) { Q_UNUSED(type) @@ -168,4 +167,4 @@ protected: NUT_END_NAMESPACE -#endif // SQLGENERATORBASE_H +#endif // NUT_ABSTRACTSQLGENERATOR_H diff --git a/src/nut/generators/mysqlgenerator.cpp b/src/nut/generators/mysqlgenerator.cpp index 5b1329e..ee8224f 100644 --- a/src/nut/generators/mysqlgenerator.cpp +++ b/src/nut/generators/mysqlgenerator.cpp @@ -19,7 +19,7 @@ **************************************************************************/ #include "mysqlgenerator.h" -#include "../tablemodel.h" +#include "tablemodel.h" #include #include @@ -35,7 +35,7 @@ NUT_BEGIN_NAMESPACE -MySqlGenerator::MySqlGenerator(Database *parent) : SqlGeneratorBase(parent) +MySqlGenerator::MySqlGenerator(Database *parent) : AbstractSqlGenerator(parent) { } @@ -178,7 +178,7 @@ QString MySqlGenerator::escapeValue(const QVariant &v) const // } // default: - return SqlGeneratorBase::escapeValue(v); + return AbstractSqlGenerator::escapeValue(v); // } } @@ -229,7 +229,7 @@ QVariant MySqlGenerator::unescapeValue(const QMetaType::Type &type, const QVaria if (type == QMetaType::QDate) return dbValue.toDate(); - return SqlGeneratorBase::unescapeValue(type, dbValue); + return AbstractSqlGenerator::unescapeValue(type, dbValue); } bool MySqlGenerator::readInsideParentese(QString &text, QString &out) @@ -319,7 +319,7 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const return QStringLiteral("DATE_ADD(%1, INTERVAL %2 %3)") .arg(createConditionalPhrase(d->left), d->operand.toString(), - SqlGeneratorBase::dateTimePartName(op)); + AbstractSqlGenerator::dateTimePartName(op)); default: break; @@ -335,14 +335,14 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::DatePartSecond: return QStringLiteral("%2(%1)") .arg(createConditionalPhrase(d->left), - SqlGeneratorBase::dateTimePartName(op)); + AbstractSqlGenerator::dateTimePartName(op)); default: break; } } - return SqlGeneratorBase::createConditionalPhrase(d); + return AbstractSqlGenerator::createConditionalPhrase(d); } void MySqlGenerator::appendSkipTake(QString &sql, int skip, int take) diff --git a/src/nut/generators/mysqlgenerator.h b/src/nut/generators/mysqlgenerator.h index b4bbed3..121b34b 100644 --- a/src/nut/generators/mysqlgenerator.h +++ b/src/nut/generators/mysqlgenerator.h @@ -22,11 +22,11 @@ #define MYSQLGENERATOR_H #include -#include "sqlgeneratorbase_p.h" +#include "abstractsqlgenerator.h" NUT_BEGIN_NAMESPACE -class NUT_EXPORT MySqlGenerator : public SqlGeneratorBase +class NUT_EXPORT MySqlGenerator : public AbstractSqlGenerator { public: explicit MySqlGenerator(Database *parent = nullptr); diff --git a/src/nut/generators/postgresqlgenerator.cpp b/src/nut/generators/postgresqlgenerator.cpp index 489394c..d29cd01 100644 --- a/src/nut/generators/postgresqlgenerator.cpp +++ b/src/nut/generators/postgresqlgenerator.cpp @@ -29,8 +29,8 @@ #include #include "postgresqlgenerator.h" -#include "../table.h" -#include "../tablemodel.h" +#include "table.h" +#include "tablemodel.h" #include "sqlserializer.h" NUT_BEGIN_NAMESPACE @@ -73,7 +73,7 @@ bool PostgreSqlGenerator::isPostGisType(const QVariant::Type &t) const || t == QVariant::PolygonF; } -PostgreSqlGenerator::PostgreSqlGenerator(Database *parent) : SqlGeneratorBase (parent) +PostgreSqlGenerator::PostgreSqlGenerator(Database *parent) : AbstractSqlGenerator (parent) { } @@ -269,7 +269,7 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const } #endif - return SqlGeneratorBase::escapeValue(v); + return AbstractSqlGenerator::escapeValue(v); } QVariant PostgreSqlGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue) @@ -284,14 +284,14 @@ QVariant PostgreSqlGenerator::unescapeValue(const QMetaType::Type &type, const Q return dbValue.toDate(); if (type == QMetaType::QPoint) - return SqlGeneratorBase::unescapeValue(QMetaType::QPoint, + return AbstractSqlGenerator::unescapeValue(QMetaType::QPoint, dbValue.toString() .replace(QStringLiteral("("), QStringLiteral("")) .replace(QStringLiteral(")"), QStringLiteral(""))); if (type == QMetaType::QPointF) - return SqlGeneratorBase::unescapeValue(QMetaType::QPointF, + return AbstractSqlGenerator::unescapeValue(QMetaType::QPointF, dbValue.toString() .replace(QStringLiteral("("), QStringLiteral("")) @@ -337,7 +337,7 @@ QVariant PostgreSqlGenerator::unescapeValue(const QMetaType::Type &type, const Q return pol; } #endif - return SqlGeneratorBase::unescapeValue(type, dbValue); + return AbstractSqlGenerator::unescapeValue(type, dbValue); } QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const @@ -355,7 +355,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const if (d->type == PhraseData::WithVariant) { if (isPostGisType(d->operand.type()) && d->operatorCond == PhraseData::Equal) { return QStringLiteral("%1 ~= %2") - .arg(SqlGeneratorBase::createConditionalPhrase(d->left), + .arg(AbstractSqlGenerator::createConditionalPhrase(d->left), escapeValue(d->operand)); } switch (op) { @@ -374,7 +374,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const return QStringLiteral("%1 + interval '%2 %3'") .arg(createConditionalPhrase(d->left), d->operand.toString(), - SqlGeneratorBase::dateTimePartName(op)); + AbstractSqlGenerator::dateTimePartName(op)); default: break; @@ -391,14 +391,14 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::DatePartSecond: return QStringLiteral("date_part('%2', %1)") .arg(createConditionalPhrase(d->left), - SqlGeneratorBase::dateTimePartName(op)); + AbstractSqlGenerator::dateTimePartName(op)); default: break; } } - return SqlGeneratorBase::createConditionalPhrase(d); + return AbstractSqlGenerator::createConditionalPhrase(d); } NUT_END_NAMESPACE diff --git a/src/nut/generators/postgresqlgenerator.h b/src/nut/generators/postgresqlgenerator.h index 49de129..c691975 100644 --- a/src/nut/generators/postgresqlgenerator.h +++ b/src/nut/generators/postgresqlgenerator.h @@ -22,11 +22,11 @@ #define POSTGRESQLGENERATOR_H #include -#include "sqlgeneratorbase_p.h" +#include "abstractsqlgenerator.h" NUT_BEGIN_NAMESPACE -class NUT_EXPORT PostgreSqlGenerator : public SqlGeneratorBase +class NUT_EXPORT PostgreSqlGenerator : public AbstractSqlGenerator { private: bool readInsideParentese(QString &text, QString &out); diff --git a/src/nut/generators/sqlitegenerator.cpp b/src/nut/generators/sqlitegenerator.cpp index 656f854..0bc2e85 100644 --- a/src/nut/generators/sqlitegenerator.cpp +++ b/src/nut/generators/sqlitegenerator.cpp @@ -19,12 +19,12 @@ **************************************************************************/ #include "sqlitegenerator.h" -#include "../table.h" -#include "../tablemodel.h" +#include "table.h" +#include "tablemodel.h" NUT_BEGIN_NAMESPACE -SqliteGenerator::SqliteGenerator(Database *parent) : SqlGeneratorBase(parent) +SqliteGenerator::SqliteGenerator(Database *parent) : AbstractSqlGenerator(parent) { } @@ -124,7 +124,7 @@ QStringList SqliteGenerator::diff(TableModel *oldTable, TableModel *newTable) if (*oldTable == *newTable) return ret; - QStringList newTableSql = SqlGeneratorBase::diff(nullptr, newTable); + QStringList newTableSql = AbstractSqlGenerator::diff(nullptr, newTable); if (!newTable) return QStringList() << QStringLiteral("DROP TABLE ") + oldTable->name(); @@ -296,7 +296,7 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const } } - return SqlGeneratorBase::createConditionalPhrase(d); + return AbstractSqlGenerator::createConditionalPhrase(d); } QString SqliteGenerator::escapeValue(const QVariant &v) const @@ -310,7 +310,7 @@ QString SqliteGenerator::escapeValue(const QVariant &v) const if (v.type() == QVariant::DateTime) return v.toDateTime().toString(QStringLiteral("''yyyy-MM-dd HH:mm:ss''")); - return SqlGeneratorBase::escapeValue(v); + return AbstractSqlGenerator::escapeValue(v); } QVariant SqliteGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue) @@ -324,7 +324,7 @@ QVariant SqliteGenerator::unescapeValue(const QMetaType::Type &type, const QVari if (type == QMetaType::QDate) return dbValue.toDate(); - return SqlGeneratorBase::unescapeValue(type, dbValue); + return AbstractSqlGenerator::unescapeValue(type, dbValue); } NUT_END_NAMESPACE diff --git a/src/nut/generators/sqlitegenerator.h b/src/nut/generators/sqlitegenerator.h index 4d2a4ff..33a6b86 100644 --- a/src/nut/generators/sqlitegenerator.h +++ b/src/nut/generators/sqlitegenerator.h @@ -22,11 +22,11 @@ #define SQLITEGENERATOR_H #include -#include "sqlgeneratorbase_p.h" +#include "abstractsqlgenerator.h" NUT_BEGIN_NAMESPACE -class NUT_EXPORT SqliteGenerator : public SqlGeneratorBase +class NUT_EXPORT SqliteGenerator : public AbstractSqlGenerator { public: explicit SqliteGenerator(Database *parent = nullptr); diff --git a/src/nut/generators/sqlservergenerator.cpp b/src/nut/generators/sqlservergenerator.cpp index 8f86ae5..dc86698 100644 --- a/src/nut/generators/sqlservergenerator.cpp +++ b/src/nut/generators/sqlservergenerator.cpp @@ -19,8 +19,8 @@ **************************************************************************/ #include "sqlservergenerator.h" -#include "../table.h" -#include "../tablemodel.h" +#include "table.h" +#include "tablemodel.h" #include #include @@ -28,7 +28,7 @@ NUT_BEGIN_NAMESPACE SqlServerGenerator::SqlServerGenerator(Database *parent) - : SqlGeneratorBase(parent) + : AbstractSqlGenerator(parent) { } @@ -170,7 +170,7 @@ QString SqlServerGenerator::escapeValue(const QVariant &v) const // case QVariant::JsonObject: // case QVariant::JsonDocument: case QVariant::Url: - return QStringLiteral("N") + SqlGeneratorBase::escapeValue(v); + return QStringLiteral("N") + AbstractSqlGenerator::escapeValue(v); // case QVariant::Point: { // QPoint pt = v.toPoint(); @@ -193,7 +193,7 @@ QString SqlServerGenerator::escapeValue(const QVariant &v) const return v.toDateTime().toString(QStringLiteral("''yyyy-MM-dd HH:mm:ss''")); default: - return SqlGeneratorBase::escapeValue(v); + return AbstractSqlGenerator::escapeValue(v); } } @@ -208,7 +208,7 @@ QVariant SqlServerGenerator::unescapeValue(const QMetaType::Type &type, const QV if (type == QMetaType::QDate) return dbValue.toDate(); - return SqlGeneratorBase::unescapeValue(type, dbValue); + return AbstractSqlGenerator::unescapeValue(type, dbValue); } void SqlServerGenerator::appendSkipTake(QString &sql, int skip, int take) @@ -251,7 +251,7 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const return QStringLiteral("DATEADD(%3, %2, %1)") .arg(createConditionalPhrase(d->left), d->operand.toString(), - SqlGeneratorBase::dateTimePartName(op)); + AbstractSqlGenerator::dateTimePartName(op)); default: break; @@ -268,14 +268,14 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::DatePartSecond: return QStringLiteral("DATEPART(%2, %1)") .arg(createConditionalPhrase(d->left), - SqlGeneratorBase::dateTimePartName(op)); + AbstractSqlGenerator::dateTimePartName(op)); default: break; } } - return SqlGeneratorBase::createConditionalPhrase(d); + return AbstractSqlGenerator::createConditionalPhrase(d); } NUT_END_NAMESPACE diff --git a/src/nut/generators/sqlservergenerator.h b/src/nut/generators/sqlservergenerator.h index 3618f80..d67647c 100644 --- a/src/nut/generators/sqlservergenerator.h +++ b/src/nut/generators/sqlservergenerator.h @@ -22,11 +22,11 @@ #define SQLSERVERGENERATOR_H #include -#include "sqlgeneratorbase_p.h" +#include "abstractsqlgenerator.h" NUT_BEGIN_NAMESPACE -class NUT_EXPORT SqlServerGenerator : public SqlGeneratorBase +class NUT_EXPORT SqlServerGenerator : public AbstractSqlGenerator { public: explicit SqlServerGenerator(Database *parent = nullptr); diff --git a/src/nut/nut.pro b/src/nut/nut.pro index f8a7b05..b27270e 100644 --- a/src/nut/nut.pro +++ b/src/nut/nut.pro @@ -1,3 +1,6 @@ +load(qt_build_config) +MODULE = nut + TARGET = QtNut QT = core sql gui @@ -6,8 +9,13 @@ DEFINES += QT_DEPRECATED_WARNINGS NUT_SHARED NUT_BUILD_LIB DEFINES += NUT_SHARED_POINTER +INCLUDEPATH += \ + $$PWD/generators \ + $$PWD/phrases \ + $$PWD/types + HEADERS += \ - $$PWD/generators/sqlgeneratorbase_p.h \ + $$PWD/generators/abstractsqlgenerator.h \ $$PWD/generators/postgresqlgenerator.h \ $$PWD/generators/mysqlgenerator.h \ $$PWD/generators/sqlitegenerator.h \ @@ -18,9 +26,10 @@ HEADERS += \ $$PWD/defines_consts.h \ $$PWD/defines.h \ $$PWD/query.h \ + $$PWD/bulkinserter.h \ $$PWD/databasemodel.h \ $$PWD/changelogtable.h \ - $$PWD/tablesetbase_p.h \ + $$PWD/tablesetbase.h \ $$PWD/querybase_p.h \ $$PWD/tablemodel.h \ $$PWD/query_p.h \ @@ -43,7 +52,7 @@ HEADERS += \ $$PWD/table_p.h SOURCES += \ - $$PWD/generators/sqlgeneratorbase.cpp \ + $$PWD/generators/abstractsqlgenerator.cpp \ $$PWD/generators/postgresqlgenerator.cpp \ $$PWD/generators/mysqlgenerator.cpp \ $$PWD/generators/sqlitegenerator.cpp \ @@ -51,6 +60,7 @@ SOURCES += \ $$PWD/types/dbgeography.cpp \ $$PWD/tableset.cpp \ $$PWD/query.cpp \ + $$PWD/bulkinserter.cpp \ $$PWD/databasemodel.cpp \ $$PWD/tablesetbase.cpp \ $$PWD/changelogtable.cpp \ diff --git a/src/nut/phrase.h b/src/nut/phrase.h index 95178ce..4433f8d 100644 --- a/src/nut/phrase.h +++ b/src/nut/phrase.h @@ -21,16 +21,16 @@ #ifndef PHRASE_H #define PHRASE_H -#include "phrases/conditionalphrase.h" -#include "phrases/abstractfieldphrase.h" -#include "phrases/fieldphrase.h" -#include "phrases/phraselist.h" -#include "phrases/assignmentphraselist.h" -#include "phrases/phrasedatalist.h" -#include "phrases/phrasedata.h" -#include "phrases/assignmentphrase.h" -#include "phrases/numericphrase.h" -#include "phrases/datephrase.h" +#include "conditionalphrase.h" +#include "abstractfieldphrase.h" +#include "fieldphrase.h" +#include "phraselist.h" +#include "assignmentphraselist.h" +#include "phrasedatalist.h" +#include "phrasedata.h" +#include "assignmentphrase.h" +#include "numericphrase.h" +#include "datephrase.h" NUT_BEGIN_NAMESPACE diff --git a/src/nut/phrases/abstractfieldphrase.h b/src/nut/phrases/abstractfieldphrase.h index 2ddd7be..b09dc7e 100644 --- a/src/nut/phrases/abstractfieldphrase.h +++ b/src/nut/phrases/abstractfieldphrase.h @@ -21,7 +21,7 @@ #ifndef ABSTRACTFIELDPHRASE_H #define ABSTRACTFIELDPHRASE_H -#include "../defines.h" +#include "defines.h" #include "assignmentphrase.h" #include "conditionalphrase.h" diff --git a/src/nut/phrases/assignmentphrase.h b/src/nut/phrases/assignmentphrase.h index 84f7b1c..a23c169 100644 --- a/src/nut/phrases/assignmentphrase.h +++ b/src/nut/phrases/assignmentphrase.h @@ -21,7 +21,7 @@ #ifndef ASSIGNMENTPHRASE_H #define ASSIGNMENTPHRASE_H -#include "../defines.h" +#include "defines.h" #include "assignmentphraselist.h" diff --git a/src/nut/phrases/assignmentphraselist.h b/src/nut/phrases/assignmentphraselist.h index adb5399..4d779a5 100644 --- a/src/nut/phrases/assignmentphraselist.h +++ b/src/nut/phrases/assignmentphraselist.h @@ -21,7 +21,7 @@ #ifndef ASSIGNMENTPHRASELIST_H #define ASSIGNMENTPHRASELIST_H -#include "../defines.h" +#include "defines.h" NUT_BEGIN_NAMESPACE diff --git a/src/nut/phrases/fieldphrase.h b/src/nut/phrases/fieldphrase.h index ea9e6f8..71dc4b3 100644 --- a/src/nut/phrases/fieldphrase.h +++ b/src/nut/phrases/fieldphrase.h @@ -21,7 +21,7 @@ #ifndef FIELDPHRASE_H #define FIELDPHRASE_H -#include "../defines.h" +#include "defines.h" #include "abstractfieldphrase.h" diff --git a/src/nut/phrases/phrasedata.h b/src/nut/phrases/phrasedata.h index a773cb6..6b99eb9 100644 --- a/src/nut/phrases/phrasedata.h +++ b/src/nut/phrases/phrasedata.h @@ -21,7 +21,7 @@ #ifndef PHRASEDATA_H #define PHRASEDATA_H -#include "../defines.h" +#include "defines.h" NUT_BEGIN_NAMESPACE diff --git a/src/nut/phrases/phraselist.h b/src/nut/phrases/phraselist.h index cddb61b..ba87cd0 100644 --- a/src/nut/phrases/phraselist.h +++ b/src/nut/phrases/phraselist.h @@ -21,7 +21,7 @@ #ifndef PHRASELIST_H #define PHRASELIST_H -#include "../defines.h" +#include "defines.h" #include "phrasedatalist.h" diff --git a/src/nut/query.h b/src/nut/query.h index 916b845..3369a7a 100644 --- a/src/nut/query.h +++ b/src/nut/query.h @@ -39,8 +39,8 @@ #include "query_p.h" #include "database.h" #include "databasemodel.h" -#include "tablesetbase_p.h" -#include "generators/sqlgeneratorbase_p.h" +#include "tablesetbase.h" +#include "abstractsqlgenerator.h" #include "querybase_p.h" #include "phrase.h" #include "tablemodel.h" @@ -119,7 +119,7 @@ Q_OUTOFLINE_TEMPLATE QList Query::select(const std::functionjoins.prepend(d->tableName); d->sql = d->database->sqlGenerator()->selectCommand(d->tableName, - SqlGeneratorBase::SingleField, + AbstractSqlGenerator::SingleField, QStringLiteral("*"), d->wherePhrase, d->relations, @@ -354,7 +354,7 @@ Q_OUTOFLINE_TEMPLATE QList Query::select(const FieldPhrase f) d->joins.prepend(d->tableName); d->sql = d->database->sqlGenerator()->selectCommand( d->tableName, - SqlGeneratorBase::SingleField, f.data->toString(), + AbstractSqlGenerator::SingleField, f.data->toString(), d->wherePhrase, d->relations, d->skip, d->take); @@ -392,7 +392,7 @@ Q_OUTOFLINE_TEMPLATE int Query::count() d->select = QStringLiteral("COUNT(*)"); d->sql = d->database->sqlGenerator()->selectCommand( d->tableName, - SqlGeneratorBase::Count, + AbstractSqlGenerator::Count, QStringLiteral("*"), d->wherePhrase, d->relations); @@ -411,7 +411,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query::max(const FieldPhrase &f) d->joins.prepend(d->tableName); d->sql = d->database->sqlGenerator()->selectCommand( d->tableName, - SqlGeneratorBase::Max, f.data->toString(), + AbstractSqlGenerator::Max, f.data->toString(), d->wherePhrase, d->relations); QSqlQuery q = d->database->exec(d->sql); @@ -429,7 +429,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query::min(const FieldPhrase &f) d->joins.prepend(d->tableName); d->sql = d->database->sqlGenerator()->selectCommand( d->tableName, - SqlGeneratorBase::Min, f.data->toString(), + AbstractSqlGenerator::Min, f.data->toString(), d->wherePhrase, d->relations); QSqlQuery q = d->database->exec(d->sql); @@ -447,7 +447,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query::sum(const FieldPhrase &f) d->joins.prepend(d->tableName); d->sql = d->database->sqlGenerator()->selectCommand( d->tableName, - SqlGeneratorBase::Sum, f.data->toString(), + AbstractSqlGenerator::Sum, f.data->toString(), d->wherePhrase, d->relations); QSqlQuery q = d->database->exec(d->sql); @@ -465,7 +465,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query::average(const FieldPhrase &f) d->joins.prepend(d->tableName); d->sql = d->database->sqlGenerator()->selectCommand( d->tableName, - SqlGeneratorBase::Average, f.data->toString(), + AbstractSqlGenerator::Average, f.data->toString(), d->wherePhrase, d->relations); QSqlQuery q = d->database->exec(d->sql); diff --git a/src/nut/querybase.cpp b/src/nut/querybase.cpp index f14f16e..9e06ea6 100644 --- a/src/nut/querybase.cpp +++ b/src/nut/querybase.cpp @@ -1,7 +1,7 @@ #include "querybase_p.h" #include "table.h" -#include "tablesetbase_p.h" +#include "tablesetbase.h" NUT_BEGIN_NAMESPACE diff --git a/src/nut/sqlmodel.cpp b/src/nut/sqlmodel.cpp index aa007a0..14a627b 100644 --- a/src/nut/sqlmodel.cpp +++ b/src/nut/sqlmodel.cpp @@ -19,7 +19,7 @@ **************************************************************************/ #include "database.h" -#include "tablesetbase_p.h" +#include "tablesetbase.h" #include "databasemodel.h" #include "tablemodel.h" #include "table.h" diff --git a/src/nut/table.cpp b/src/nut/table.cpp index e5ee7e1..8ba442b 100644 --- a/src/nut/table.cpp +++ b/src/nut/table.cpp @@ -26,8 +26,8 @@ #include "table_p.h" #include "database.h" #include "databasemodel.h" -#include "generators/sqlgeneratorbase_p.h" -#include "tablesetbase_p.h" +#include "abstractsqlgenerator.h" +#include "tablesetbase.h" NUT_BEGIN_NAMESPACE diff --git a/src/nut/tableset.h b/src/nut/tableset.h index de804f0..3c08a95 100644 --- a/src/nut/tableset.h +++ b/src/nut/tableset.h @@ -29,7 +29,7 @@ #include -#include "tablesetbase_p.h" +#include "tablesetbase.h" #include "table.h" #include "bulkinserter.h" #include "databasemodel.h" diff --git a/src/nut/tablesetbase.cpp b/src/nut/tablesetbase.cpp index b30398b..488d89f 100644 --- a/src/nut/tablesetbase.cpp +++ b/src/nut/tablesetbase.cpp @@ -20,7 +20,7 @@ #include "table.h" #include "database.h" -#include "tablesetbase_p.h" +#include "tablesetbase.h" #include "databasemodel.h" #include "tablesetbasedata.h" diff --git a/src/nut/tablesetbase_p.h b/src/nut/tablesetbase.h similarity index 100% rename from src/nut/tablesetbase_p.h rename to src/nut/tablesetbase.h diff --git a/src/nut/types/dbgeography.h b/src/nut/types/dbgeography.h index 5feed3f..575426e 100644 --- a/src/nut/types/dbgeography.h +++ b/src/nut/types/dbgeography.h @@ -21,7 +21,7 @@ #ifndef DBGEOGRAPHY_H #define DBGEOGRAPHY_H -#include "../defines.h" +#include "defines.h" #include #include #include diff --git a/tests/auto/tst_generators/tst_generators.cpp b/tests/auto/tst_generators/tst_generators.cpp index 1563b96..eaa4fb7 100644 --- a/tests/auto/tst_generators/tst_generators.cpp +++ b/tests/auto/tst_generators/tst_generators.cpp @@ -19,7 +19,7 @@ GeneratorsTest::GeneratorsTest(QObject *parent) : QObject(parent) } -void GeneratorsTest::types(Nut::SqlGeneratorBase *g, QString name) +void GeneratorsTest::types(Nut::AbstractSqlGenerator *g, QString name) { QList types; types diff --git a/tests/auto/tst_generators/tst_generators.h b/tests/auto/tst_generators/tst_generators.h index 3f65973..6f93c5b 100644 --- a/tests/auto/tst_generators/tst_generators.h +++ b/tests/auto/tst_generators/tst_generators.h @@ -5,7 +5,7 @@ #include namespace Nut { -class SqlGeneratorBase; +class AbstractSqlGenerator; } class GeneratorsTest : public QObject @@ -33,7 +33,7 @@ class GeneratorsTest : public QObject public: explicit GeneratorsTest(QObject *parent = nullptr); - void types(Nut::SqlGeneratorBase *g, QString name); + void types(Nut::AbstractSqlGenerator *g, QString name); private slots: void test_sqlite();