wip: make needed headers public

This commit is contained in:
Hamed Masafi 2020-08-06 19:49:27 +04:30
parent afd61786de
commit abc62fcedf
33 changed files with 155 additions and 146 deletions

View File

@ -1,7 +1,7 @@
#include "bulkinserter.h" #include "bulkinserter.h"
#include "phrases/phraselist.h" #include "phrases/phraselist.h"
#include "database.h" #include "database.h"
#include "generators/sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
#include "databasemodel.h" #include "databasemodel.h"
#include <QtCore/QDebug> #include <QtCore/QDebug>

View File

@ -4,8 +4,8 @@
#include <initializer_list> #include <initializer_list>
#include <QtCore/QDebug> #include <QtCore/QDebug>
#include "defines.h" #include "defines.h"
#include "phrases/phraselist.h" #include "phraselist.h"
#include "phrases/fieldphrase.h" #include "fieldphrase.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE

View File

@ -35,10 +35,10 @@
#include "database_p.h" #include "database_p.h"
#include "defines.h" #include "defines.h"
#include "tablemodel.h" #include "tablemodel.h"
#include "generators/postgresqlgenerator.h" #include "postgresqlgenerator.h"
#include "generators/mysqlgenerator.h" #include "mysqlgenerator.h"
#include "generators/sqlitegenerator.h" #include "sqlitegenerator.h"
#include "generators/sqlservergenerator.h" #include "sqlservergenerator.h"
#include "query.h" #include "query.h"
#include "changelogtable.h" #include "changelogtable.h"
@ -512,7 +512,7 @@ void Database::setDriver(QString driver)
d->driver = driver.toUpper(); d->driver = driver.toUpper();
} }
SqlGeneratorBase *Database::sqlGenerator() const AbstractSqlGenerator *Database::sqlGenerator() const
{ {
Q_D(const Database); Q_D(const Database);
return d->sqlGenerator; return d->sqlGenerator;

View File

@ -34,7 +34,7 @@ NUT_BEGIN_NAMESPACE
class DatabaseModel; class DatabaseModel;
class DatabasePrivate; class DatabasePrivate;
class TableSetBase; class TableSetBase;
class SqlGeneratorBase; class AbstractSqlGenerator;
class ChangeLogTable; class ChangeLogTable;
class NUT_EXPORT Database : public QObject class NUT_EXPORT Database : public QObject
{ {
@ -70,7 +70,7 @@ public:
DatabaseModel model() const; DatabaseModel model() const;
QString tableName(QString className); QString tableName(QString className);
SqlGeneratorBase *sqlGenerator() const; AbstractSqlGenerator *sqlGenerator() const;
QSqlDatabase database(); QSqlDatabase database();
protected: protected:

View File

@ -56,7 +56,7 @@ public:
QString connectionName; QString connectionName;
QString driver; QString driver;
SqlGeneratorBase *sqlGenerator; AbstractSqlGenerator *sqlGenerator;
DatabaseModel currentModel; DatabaseModel currentModel;
TableSet<ChangeLogTable> *changeLogs; TableSet<ChangeLogTable> *changeLogs;

View File

@ -25,11 +25,11 @@
#include <QtCore/QVariant> #include <QtCore/QVariant>
#include <QtCore/QDebug> #include <QtCore/QDebug>
#include "sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
#include "../database.h" #include "database.h"
#include "../table.h" #include "table.h"
#include "../databasemodel.h" #include "databasemodel.h"
#include "../tablemodel.h" #include "tablemodel.h"
#include "sqlserializer.h" #include "sqlserializer.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
@ -51,7 +51,7 @@ NUT_BEGIN_NAMESPACE
* INNER JOIN dbo.GiftCards ON dbo.GiftTypes.GiftTypeID = dbo.GiftCards.GiftTypeID * INNER JOIN dbo.GiftCards ON dbo.GiftTypes.GiftTypeID = dbo.GiftCards.GiftTypeID
* INNER JOIN dbo.Entities ON dbo.GiftCards.GiftCardID = dbo.Entities.GiftCardID * 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 return type == QMetaType::SChar
|| type == QMetaType::Char || type == QMetaType::Char
@ -66,7 +66,7 @@ bool SqlGeneratorBase::isNumeric(const QMetaType::Type &type)
|| type == QMetaType::ULongLong; || type == QMetaType::ULongLong;
} }
SqlGeneratorBase::SqlGeneratorBase(Database *parent) AbstractSqlGenerator::AbstractSqlGenerator(Database *parent)
: QObject(parent) : QObject(parent)
{ {
if (parent) if (parent)
@ -75,19 +75,19 @@ SqlGeneratorBase::SqlGeneratorBase(Database *parent)
_serializer = new SqlSerializer; _serializer = new SqlSerializer;
} }
QString SqlGeneratorBase::masterDatabaseName(QString databaseName) QString AbstractSqlGenerator::masterDatabaseName(QString databaseName)
{ {
Q_UNUSED(databaseName) Q_UNUSED(databaseName)
return QString(); return QString();
} }
QString SqlGeneratorBase::createTable(TableModel *table) QString AbstractSqlGenerator::createTable(TableModel *table)
{ {
Q_UNUSED(table) Q_UNUSED(table)
return QString(); return QString();
} }
QString SqlGeneratorBase::saveRecord(Table *t, QString tableName) QString AbstractSqlGenerator::saveRecord(Table *t, QString tableName)
{ {
Q_ASSERT(!tableName.isEmpty() && !tableName.isNull()); Q_ASSERT(!tableName.isEmpty() && !tableName.isNull());
switch (t->status()) { switch (t->status()) {
@ -108,7 +108,7 @@ QString SqlGeneratorBase::saveRecord(Table *t, QString tableName)
return QString(); return QString();
} }
QString SqlGeneratorBase::recordsPhrase(TableModel *table) QString AbstractSqlGenerator::recordsPhrase(TableModel *table)
{ {
if (!table) if (!table)
return QString(); return QString();
@ -122,7 +122,7 @@ QString SqlGeneratorBase::recordsPhrase(TableModel *table)
return ret; return ret;
} }
QString SqlGeneratorBase::insertBulk(const QString &tableName, const PhraseList &ph, const QList<QVariantList> &vars) QString AbstractSqlGenerator::insertBulk(const QString &tableName, const PhraseList &ph, const QList<QVariantList> &vars)
{ {
QString sql; QString sql;
foreach (QVariantList list, vars) { foreach (QVariantList list, vars) {
@ -141,7 +141,7 @@ QString SqlGeneratorBase::insertBulk(const QString &tableName, const PhraseList
return sql; return sql;
} }
QString SqlGeneratorBase::fieldDeclare(FieldModel *field) QString AbstractSqlGenerator::fieldDeclare(FieldModel *field)
{ {
QString type = fieldType(field); QString type = fieldType(field);
if (type.isEmpty()) if (type.isEmpty())
@ -157,19 +157,19 @@ QString SqlGeneratorBase::fieldDeclare(FieldModel *field)
return ret; return ret;
} }
QStringList SqlGeneratorBase::constraints(TableModel *table) QStringList AbstractSqlGenerator::constraints(TableModel *table)
{ {
Q_UNUSED(table) Q_UNUSED(table)
return QStringList(); return QStringList();
} }
QString SqlGeneratorBase::relationDeclare(const RelationModel *relation) QString AbstractSqlGenerator::relationDeclare(const RelationModel *relation)
{ {
return QStringLiteral("FOREIGN KEY (FK_%1) REFERENCES %2(%1)") return QStringLiteral("FOREIGN KEY (FK_%1) REFERENCES %2(%1)")
.arg(relation->localColumn, relation->slaveTable->name()); .arg(relation->localColumn, relation->slaveTable->name());
} }
QStringList SqlGeneratorBase::diff(const DatabaseModel &lastModel, QStringList AbstractSqlGenerator::diff(const DatabaseModel &lastModel,
const DatabaseModel &newModel) const DatabaseModel &newModel)
{ {
QStringList ret; QStringList ret;
@ -192,7 +192,7 @@ QStringList SqlGeneratorBase::diff(const DatabaseModel &lastModel,
return ret; return ret;
} }
QString SqlGeneratorBase::diff(FieldModel *oldField, FieldModel *newField) QString AbstractSqlGenerator::diff(FieldModel *oldField, FieldModel *newField)
{ {
QString sql = QString(); QString sql = QString();
if (oldField && newField) if (oldField && newField)
@ -211,7 +211,7 @@ QString SqlGeneratorBase::diff(FieldModel *oldField, FieldModel *newField)
return sql; return sql;
} }
QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) QStringList AbstractSqlGenerator::diff(TableModel *oldTable, TableModel *newTable)
{ {
if (!newTable && !oldTable) if (!newTable && !oldTable)
return QStringList(); return QStringList();
@ -289,7 +289,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable)
return QStringList() << sql; return QStringList() << sql;
} }
QStringList SqlGeneratorBase::diffRelation(TableModel *oldTable, TableModel *newTable) QStringList AbstractSqlGenerator::diffRelation(TableModel *oldTable, TableModel *newTable)
{ {
QStringList ret; QStringList ret;
if (!newTable) if (!newTable)
@ -327,7 +327,7 @@ QStringList SqlGeneratorBase::diffRelation(TableModel *oldTable, TableModel *new
return ret; return ret;
} }
QStringList SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel) QStringList AbstractSqlGenerator::diff(RelationModel *oldRel, RelationModel *newRel)
{ {
QStringList ret; QStringList ret;
/* /*
@ -358,7 +358,7 @@ QStringList SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel)
return ret; return ret;
} }
QString SqlGeneratorBase::join(const QString &mainTable, QString AbstractSqlGenerator::join(const QString &mainTable,
const QList<RelationModel*> &list, const QList<RelationModel*> &list,
QStringList *order) QStringList *order)
{ {
@ -390,7 +390,7 @@ QString SqlGeneratorBase::join(const QString &mainTable,
return ret; return ret;
} }
QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) QString AbstractSqlGenerator::join(const QStringList &list, QStringList *order)
{ {
//TODO: reorder list first! //TODO: reorder list first!
//TODO: make this ungly code better and bugless :-) //TODO: make this ungly code better and bugless :-)
@ -454,7 +454,7 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order)
return ret; return ret;
} }
QString SqlGeneratorBase::insertRecord(Table *t, QString tableName) QString AbstractSqlGenerator::insertRecord(Table *t, QString tableName)
{ {
QString sql = QString(); QString sql = QString();
auto model = _database->model().tableByName(tableName); auto model = _database->model().tableByName(tableName);
@ -483,7 +483,7 @@ QString SqlGeneratorBase::insertRecord(Table *t, QString tableName)
return sql; return sql;
} }
QString SqlGeneratorBase::updateRecord(Table *t, QString tableName) QString AbstractSqlGenerator::updateRecord(Table *t, QString tableName)
{ {
QString sql = QString(); QString sql = QString();
auto model = _database->model().tableByName(tableName); auto model = _database->model().tableByName(tableName);
@ -506,7 +506,7 @@ QString SqlGeneratorBase::updateRecord(Table *t, QString tableName)
return sql; return sql;
} }
QString SqlGeneratorBase::deleteRecord(Table *t, QString tableName) QString AbstractSqlGenerator::deleteRecord(Table *t, QString tableName)
{ {
auto model = _database->model().tableByName(tableName); auto model = _database->model().tableByName(tableName);
QString key = model->primaryKey(); QString key = model->primaryKey();
@ -516,7 +516,7 @@ QString SqlGeneratorBase::deleteRecord(Table *t, QString tableName)
return sql; return sql;
} }
QString SqlGeneratorBase::agregateText(const AgregateType &t, QString AbstractSqlGenerator::agregateText(const AgregateType &t,
const QString &arg) const const QString &arg) const
{ {
switch (t) { switch (t) {
@ -541,7 +541,7 @@ QString SqlGeneratorBase::agregateText(const AgregateType &t,
return QString(); // never reach return QString(); // never reach
} }
QString SqlGeneratorBase::fromTableText(const QString &tableName, QString AbstractSqlGenerator::fromTableText(const QString &tableName,
QString &joinClassName, QString &joinClassName,
QString &orderBy) const QString &orderBy) const
{ {
@ -568,7 +568,7 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName,
return tableNameText; 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; QString sql = QStringLiteral("DELETE FROM ") + tableName;
@ -580,7 +580,7 @@ QString SqlGeneratorBase::deleteRecords(const QString &tableName, const QString
return sql; return sql;
} }
QString SqlGeneratorBase::selectCommand(const QString &tableName, QString AbstractSqlGenerator::selectCommand(const QString &tableName,
const PhraseList &fields, const PhraseList &fields,
const ConditionalPhrase &where, const ConditionalPhrase &where,
const PhraseList &order, const PhraseList &order,
@ -632,8 +632,8 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
return sql + QStringLiteral(" "); return sql + QStringLiteral(" ");
} }
QString SqlGeneratorBase::selectCommand(const QString &tableName, QString AbstractSqlGenerator::selectCommand(const QString &tableName,
const SqlGeneratorBase::AgregateType &t, const AbstractSqlGenerator::AgregateType &t,
const QString &agregateArg, const QString &agregateArg,
const ConditionalPhrase &where, const ConditionalPhrase &where,
const QList<RelationModel *> &joins, const QList<RelationModel *> &joins,
@ -661,7 +661,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
return sql + QStringLiteral(" "); return sql + QStringLiteral(" ");
} }
QString SqlGeneratorBase::deleteCommand(const QString &tableName, QString AbstractSqlGenerator::deleteCommand(const QString &tableName,
const ConditionalPhrase &where) const ConditionalPhrase &where)
{ {
QString command = QStringLiteral("DELETE FROM ") + tableName; QString command = QStringLiteral("DELETE FROM ") + tableName;
@ -679,7 +679,7 @@ QString SqlGeneratorBase::deleteCommand(const QString &tableName,
return command; return command;
} }
QString SqlGeneratorBase::updateCommand(const QString &tableName, QString AbstractSqlGenerator::updateCommand(const QString &tableName,
const AssignmentPhraseList &assigments, const AssignmentPhraseList &assigments,
const ConditionalPhrase &where) const ConditionalPhrase &where)
{ {
@ -707,7 +707,7 @@ QString SqlGeneratorBase::updateCommand(const QString &tableName,
return sql; return sql;
} }
QString SqlGeneratorBase::insertCommand(const QString &tableName, const AssignmentPhraseList &assigments) QString AbstractSqlGenerator::insertCommand(const QString &tableName, const AssignmentPhraseList &assigments)
{ {
QString fieldNames; QString fieldNames;
@ -795,7 +795,7 @@ QString SqlGeneratorBase::insertCommand(const QString &tableName, const Assignme
// return whereText; // return whereText;
//} //}
void SqlGeneratorBase::replaceTableNames(QString &command) void AbstractSqlGenerator::replaceTableNames(QString &command)
{ {
foreach (TableModel *m, _database->model()) foreach (TableModel *m, _database->model())
command = command command = command
@ -803,7 +803,7 @@ void SqlGeneratorBase::replaceTableNames(QString &command)
+ QStringLiteral("]"), m->name()); + QStringLiteral("]"), m->name());
} }
void SqlGeneratorBase::removeTableNames(QString &command) void AbstractSqlGenerator::removeTableNames(QString &command)
{ {
foreach (TableModel *m, _database->model()) foreach (TableModel *m, _database->model())
command = command.replace(QStringLiteral("[") command = command.replace(QStringLiteral("[")
@ -811,7 +811,7 @@ void SqlGeneratorBase::removeTableNames(QString &command)
+ QStringLiteral("]."), QStringLiteral("")); + QStringLiteral("]."), QStringLiteral(""));
} }
QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) const QString AbstractSqlGenerator::dateTimePartName(const PhraseData::Condition &op) const
{ {
switch (op) { switch (op) {
case PhraseData::DatePartYear: case PhraseData::DatePartYear:
@ -884,7 +884,7 @@ QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) cons
// return sql; // return sql;
//} //}
QString SqlGeneratorBase::escapeValue(const QVariant &v) const QString AbstractSqlGenerator::escapeValue(const QVariant &v) const
{ {
if (v.type() == QVariant::String && v.toString().isEmpty()) if (v.type() == QVariant::String && v.toString().isEmpty())
return QStringLiteral("''"); return QStringLiteral("''");
@ -901,13 +901,13 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const
return QStringLiteral("'") + serialized + QStringLiteral("'"); return QStringLiteral("'") + serialized + QStringLiteral("'");
} }
QVariant SqlGeneratorBase::unescapeValue(const QMetaType::Type &type, QVariant AbstractSqlGenerator::unescapeValue(const QMetaType::Type &type,
const QVariant &dbValue) const QVariant &dbValue)
{ {
return _serializer->deserialize(dbValue.toString(), type); return _serializer->deserialize(dbValue.toString(), type);
} }
QString SqlGeneratorBase::phrase(const PhraseData *d) const QString AbstractSqlGenerator::phrase(const PhraseData *d) const
{ {
QString ret = QString(); QString ret = QString();
@ -941,7 +941,7 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const
} }
QString QString
SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const AbstractSqlGenerator::operatorString(const PhraseData::Condition &cond) const
{ {
switch (cond) { switch (cond) {
case PhraseData::Equal: 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(sql)
Q_UNUSED(skip) Q_UNUSED(skip)
Q_UNUSED(take) 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)") return QStringLiteral("CONSTRAINT pk_%1 PRIMARY KEY (%2)")
.arg(table->name(), table->primaryKey()); .arg(table->name(), table->primaryKey());
} }
QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const QString AbstractSqlGenerator::createConditionalPhrase(const PhraseData *d) const
{ {
if (!d) if (!d)
return QString(); return QString();
@ -1102,7 +1102,7 @@ QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const
return ret; return ret;
} }
QString SqlGeneratorBase::createOrderPhrase(const PhraseList &ph) QString AbstractSqlGenerator::createOrderPhrase(const PhraseList &ph)
{ {
QString ret = QString(); QString ret = QString();
foreach (const PhraseData *d, ph.data) { foreach (const PhraseData *d, ph.data) {
@ -1116,7 +1116,7 @@ QString SqlGeneratorBase::createOrderPhrase(const PhraseList &ph)
return ret; return ret;
} }
QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph) QString AbstractSqlGenerator::createFieldPhrase(const PhraseList &ph)
{ {
QString ret = QString(); QString ret = QString();
foreach (const PhraseData *d, ph.data) { foreach (const PhraseData *d, ph.data) {
@ -1129,7 +1129,7 @@ QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph)
return ret; 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) { foreach (PhraseData *d, ph.data) {
if (!fields.isEmpty()) if (!fields.isEmpty())

View File

@ -18,14 +18,13 @@
** **
**************************************************************************/ **************************************************************************/
#ifndef SQLGENERATORBASE_H #ifndef NUT_ABSTRACTSQLGENERATOR_H
#define SQLGENERATORBASE_H #define NUT_ABSTRACTSQLGENERATOR_H
#include <QtCore/qglobal.h> #include <QtCore/qglobal.h>
#include <QtCore/QObject> #include <QtCore/QObject>
#include <QtCore/QStringList> #include <QtCore/QStringList>
#include "../phrase.h" #include "phrase.h"
//#include "../wherephrase.h"
class SqlSerializer; class SqlSerializer;
@ -37,7 +36,7 @@ class DatabaseModel;
class TableModel; class TableModel;
class Database; class Database;
struct RelationModel; struct RelationModel;
class NUT_EXPORT SqlGeneratorBase : public QObject class NUT_EXPORT AbstractSqlGenerator : public QObject
{ {
// Q_OBJECT // Q_OBJECT
@ -65,8 +64,8 @@ public:
Sum Sum
}; };
explicit SqlGeneratorBase(Database *parent); explicit AbstractSqlGenerator(Database *parent);
virtual ~SqlGeneratorBase() = default; virtual ~AbstractSqlGenerator() = default;
virtual bool supportPrimaryKey(const QMetaType::Type &type) { virtual bool supportPrimaryKey(const QMetaType::Type &type) {
Q_UNUSED(type) Q_UNUSED(type)
@ -168,4 +167,4 @@ protected:
NUT_END_NAMESPACE NUT_END_NAMESPACE
#endif // SQLGENERATORBASE_H #endif // NUT_ABSTRACTSQLGENERATOR_H

View File

@ -19,7 +19,7 @@
**************************************************************************/ **************************************************************************/
#include "mysqlgenerator.h" #include "mysqlgenerator.h"
#include "../tablemodel.h" #include "tablemodel.h"
#include <QtCore/QPoint> #include <QtCore/QPoint>
#include <QtCore/QPointF> #include <QtCore/QPointF>
@ -35,7 +35,7 @@
NUT_BEGIN_NAMESPACE 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: // 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) if (type == QMetaType::QDate)
return dbValue.toDate(); return dbValue.toDate();
return SqlGeneratorBase::unescapeValue(type, dbValue); return AbstractSqlGenerator::unescapeValue(type, dbValue);
} }
bool MySqlGenerator::readInsideParentese(QString &text, QString &out) 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)") return QStringLiteral("DATE_ADD(%1, INTERVAL %2 %3)")
.arg(createConditionalPhrase(d->left), .arg(createConditionalPhrase(d->left),
d->operand.toString(), d->operand.toString(),
SqlGeneratorBase::dateTimePartName(op)); AbstractSqlGenerator::dateTimePartName(op));
default: default:
break; break;
@ -335,14 +335,14 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const
case PhraseData::DatePartSecond: case PhraseData::DatePartSecond:
return QStringLiteral("%2(%1)") return QStringLiteral("%2(%1)")
.arg(createConditionalPhrase(d->left), .arg(createConditionalPhrase(d->left),
SqlGeneratorBase::dateTimePartName(op)); AbstractSqlGenerator::dateTimePartName(op));
default: default:
break; break;
} }
} }
return SqlGeneratorBase::createConditionalPhrase(d); return AbstractSqlGenerator::createConditionalPhrase(d);
} }
void MySqlGenerator::appendSkipTake(QString &sql, int skip, int take) void MySqlGenerator::appendSkipTake(QString &sql, int skip, int take)

View File

@ -22,11 +22,11 @@
#define MYSQLGENERATOR_H #define MYSQLGENERATOR_H
#include <QtCore/qglobal.h> #include <QtCore/qglobal.h>
#include "sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
class NUT_EXPORT MySqlGenerator : public SqlGeneratorBase class NUT_EXPORT MySqlGenerator : public AbstractSqlGenerator
{ {
public: public:
explicit MySqlGenerator(Database *parent = nullptr); explicit MySqlGenerator(Database *parent = nullptr);

View File

@ -29,8 +29,8 @@
#include <QtCore/QJsonDocument> #include <QtCore/QJsonDocument>
#include "postgresqlgenerator.h" #include "postgresqlgenerator.h"
#include "../table.h" #include "table.h"
#include "../tablemodel.h" #include "tablemodel.h"
#include "sqlserializer.h" #include "sqlserializer.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
@ -73,7 +73,7 @@ bool PostgreSqlGenerator::isPostGisType(const QVariant::Type &t) const
|| t == QVariant::PolygonF; || 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 #endif
return SqlGeneratorBase::escapeValue(v); return AbstractSqlGenerator::escapeValue(v);
} }
QVariant PostgreSqlGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue) 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(); return dbValue.toDate();
if (type == QMetaType::QPoint) if (type == QMetaType::QPoint)
return SqlGeneratorBase::unescapeValue(QMetaType::QPoint, return AbstractSqlGenerator::unescapeValue(QMetaType::QPoint,
dbValue.toString() dbValue.toString()
.replace(QStringLiteral("("), .replace(QStringLiteral("("),
QStringLiteral("")) QStringLiteral(""))
.replace(QStringLiteral(")"), .replace(QStringLiteral(")"),
QStringLiteral(""))); QStringLiteral("")));
if (type == QMetaType::QPointF) if (type == QMetaType::QPointF)
return SqlGeneratorBase::unescapeValue(QMetaType::QPointF, return AbstractSqlGenerator::unescapeValue(QMetaType::QPointF,
dbValue.toString() dbValue.toString()
.replace(QStringLiteral("("), .replace(QStringLiteral("("),
QStringLiteral("")) QStringLiteral(""))
@ -337,7 +337,7 @@ QVariant PostgreSqlGenerator::unescapeValue(const QMetaType::Type &type, const Q
return pol; return pol;
} }
#endif #endif
return SqlGeneratorBase::unescapeValue(type, dbValue); return AbstractSqlGenerator::unescapeValue(type, dbValue);
} }
QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
@ -355,7 +355,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
if (d->type == PhraseData::WithVariant) { if (d->type == PhraseData::WithVariant) {
if (isPostGisType(d->operand.type()) && d->operatorCond == PhraseData::Equal) { if (isPostGisType(d->operand.type()) && d->operatorCond == PhraseData::Equal) {
return QStringLiteral("%1 ~= %2") return QStringLiteral("%1 ~= %2")
.arg(SqlGeneratorBase::createConditionalPhrase(d->left), .arg(AbstractSqlGenerator::createConditionalPhrase(d->left),
escapeValue(d->operand)); escapeValue(d->operand));
} }
switch (op) { switch (op) {
@ -374,7 +374,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
return QStringLiteral("%1 + interval '%2 %3'") return QStringLiteral("%1 + interval '%2 %3'")
.arg(createConditionalPhrase(d->left), .arg(createConditionalPhrase(d->left),
d->operand.toString(), d->operand.toString(),
SqlGeneratorBase::dateTimePartName(op)); AbstractSqlGenerator::dateTimePartName(op));
default: default:
break; break;
@ -391,14 +391,14 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
case PhraseData::DatePartSecond: case PhraseData::DatePartSecond:
return QStringLiteral("date_part('%2', %1)") return QStringLiteral("date_part('%2', %1)")
.arg(createConditionalPhrase(d->left), .arg(createConditionalPhrase(d->left),
SqlGeneratorBase::dateTimePartName(op)); AbstractSqlGenerator::dateTimePartName(op));
default: default:
break; break;
} }
} }
return SqlGeneratorBase::createConditionalPhrase(d); return AbstractSqlGenerator::createConditionalPhrase(d);
} }
NUT_END_NAMESPACE NUT_END_NAMESPACE

View File

@ -22,11 +22,11 @@
#define POSTGRESQLGENERATOR_H #define POSTGRESQLGENERATOR_H
#include <QtCore/qglobal.h> #include <QtCore/qglobal.h>
#include "sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
class NUT_EXPORT PostgreSqlGenerator : public SqlGeneratorBase class NUT_EXPORT PostgreSqlGenerator : public AbstractSqlGenerator
{ {
private: private:
bool readInsideParentese(QString &text, QString &out); bool readInsideParentese(QString &text, QString &out);

View File

@ -19,12 +19,12 @@
**************************************************************************/ **************************************************************************/
#include "sqlitegenerator.h" #include "sqlitegenerator.h"
#include "../table.h" #include "table.h"
#include "../tablemodel.h" #include "tablemodel.h"
NUT_BEGIN_NAMESPACE 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) if (*oldTable == *newTable)
return ret; return ret;
QStringList newTableSql = SqlGeneratorBase::diff(nullptr, newTable); QStringList newTableSql = AbstractSqlGenerator::diff(nullptr, newTable);
if (!newTable) if (!newTable)
return QStringList() << QStringLiteral("DROP TABLE ") + oldTable->name(); 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 QString SqliteGenerator::escapeValue(const QVariant &v) const
@ -310,7 +310,7 @@ QString SqliteGenerator::escapeValue(const QVariant &v) const
if (v.type() == QVariant::DateTime) if (v.type() == QVariant::DateTime)
return v.toDateTime().toString(QStringLiteral("''yyyy-MM-dd HH:mm:ss''")); 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) 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) if (type == QMetaType::QDate)
return dbValue.toDate(); return dbValue.toDate();
return SqlGeneratorBase::unescapeValue(type, dbValue); return AbstractSqlGenerator::unescapeValue(type, dbValue);
} }
NUT_END_NAMESPACE NUT_END_NAMESPACE

View File

@ -22,11 +22,11 @@
#define SQLITEGENERATOR_H #define SQLITEGENERATOR_H
#include <QtCore/qglobal.h> #include <QtCore/qglobal.h>
#include "sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
class NUT_EXPORT SqliteGenerator : public SqlGeneratorBase class NUT_EXPORT SqliteGenerator : public AbstractSqlGenerator
{ {
public: public:
explicit SqliteGenerator(Database *parent = nullptr); explicit SqliteGenerator(Database *parent = nullptr);

View File

@ -19,8 +19,8 @@
**************************************************************************/ **************************************************************************/
#include "sqlservergenerator.h" #include "sqlservergenerator.h"
#include "../table.h" #include "table.h"
#include "../tablemodel.h" #include "tablemodel.h"
#include <QtCore/QPoint> #include <QtCore/QPoint>
#include <QtCore/QRegularExpression> #include <QtCore/QRegularExpression>
@ -28,7 +28,7 @@
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
SqlServerGenerator::SqlServerGenerator(Database *parent) SqlServerGenerator::SqlServerGenerator(Database *parent)
: SqlGeneratorBase(parent) : AbstractSqlGenerator(parent)
{ {
} }
@ -170,7 +170,7 @@ QString SqlServerGenerator::escapeValue(const QVariant &v) const
// case QVariant::JsonObject: // case QVariant::JsonObject:
// case QVariant::JsonDocument: // case QVariant::JsonDocument:
case QVariant::Url: case QVariant::Url:
return QStringLiteral("N") + SqlGeneratorBase::escapeValue(v); return QStringLiteral("N") + AbstractSqlGenerator::escapeValue(v);
// case QVariant::Point: { // case QVariant::Point: {
// QPoint pt = v.toPoint(); // 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''")); return v.toDateTime().toString(QStringLiteral("''yyyy-MM-dd HH:mm:ss''"));
default: 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) if (type == QMetaType::QDate)
return dbValue.toDate(); return dbValue.toDate();
return SqlGeneratorBase::unescapeValue(type, dbValue); return AbstractSqlGenerator::unescapeValue(type, dbValue);
} }
void SqlServerGenerator::appendSkipTake(QString &sql, int skip, int take) 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)") return QStringLiteral("DATEADD(%3, %2, %1)")
.arg(createConditionalPhrase(d->left), .arg(createConditionalPhrase(d->left),
d->operand.toString(), d->operand.toString(),
SqlGeneratorBase::dateTimePartName(op)); AbstractSqlGenerator::dateTimePartName(op));
default: default:
break; break;
@ -268,14 +268,14 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const
case PhraseData::DatePartSecond: case PhraseData::DatePartSecond:
return QStringLiteral("DATEPART(%2, %1)") return QStringLiteral("DATEPART(%2, %1)")
.arg(createConditionalPhrase(d->left), .arg(createConditionalPhrase(d->left),
SqlGeneratorBase::dateTimePartName(op)); AbstractSqlGenerator::dateTimePartName(op));
default: default:
break; break;
} }
} }
return SqlGeneratorBase::createConditionalPhrase(d); return AbstractSqlGenerator::createConditionalPhrase(d);
} }
NUT_END_NAMESPACE NUT_END_NAMESPACE

View File

@ -22,11 +22,11 @@
#define SQLSERVERGENERATOR_H #define SQLSERVERGENERATOR_H
#include <QtCore/qglobal.h> #include <QtCore/qglobal.h>
#include "sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
class NUT_EXPORT SqlServerGenerator : public SqlGeneratorBase class NUT_EXPORT SqlServerGenerator : public AbstractSqlGenerator
{ {
public: public:
explicit SqlServerGenerator(Database *parent = nullptr); explicit SqlServerGenerator(Database *parent = nullptr);

View File

@ -1,3 +1,6 @@
load(qt_build_config)
MODULE = nut
TARGET = QtNut TARGET = QtNut
QT = core sql gui QT = core sql gui
@ -6,8 +9,13 @@ DEFINES += QT_DEPRECATED_WARNINGS NUT_SHARED NUT_BUILD_LIB
DEFINES += NUT_SHARED_POINTER DEFINES += NUT_SHARED_POINTER
INCLUDEPATH += \
$$PWD/generators \
$$PWD/phrases \
$$PWD/types
HEADERS += \ HEADERS += \
$$PWD/generators/sqlgeneratorbase_p.h \ $$PWD/generators/abstractsqlgenerator.h \
$$PWD/generators/postgresqlgenerator.h \ $$PWD/generators/postgresqlgenerator.h \
$$PWD/generators/mysqlgenerator.h \ $$PWD/generators/mysqlgenerator.h \
$$PWD/generators/sqlitegenerator.h \ $$PWD/generators/sqlitegenerator.h \
@ -18,9 +26,10 @@ HEADERS += \
$$PWD/defines_consts.h \ $$PWD/defines_consts.h \
$$PWD/defines.h \ $$PWD/defines.h \
$$PWD/query.h \ $$PWD/query.h \
$$PWD/bulkinserter.h \
$$PWD/databasemodel.h \ $$PWD/databasemodel.h \
$$PWD/changelogtable.h \ $$PWD/changelogtable.h \
$$PWD/tablesetbase_p.h \ $$PWD/tablesetbase.h \
$$PWD/querybase_p.h \ $$PWD/querybase_p.h \
$$PWD/tablemodel.h \ $$PWD/tablemodel.h \
$$PWD/query_p.h \ $$PWD/query_p.h \
@ -43,7 +52,7 @@ HEADERS += \
$$PWD/table_p.h $$PWD/table_p.h
SOURCES += \ SOURCES += \
$$PWD/generators/sqlgeneratorbase.cpp \ $$PWD/generators/abstractsqlgenerator.cpp \
$$PWD/generators/postgresqlgenerator.cpp \ $$PWD/generators/postgresqlgenerator.cpp \
$$PWD/generators/mysqlgenerator.cpp \ $$PWD/generators/mysqlgenerator.cpp \
$$PWD/generators/sqlitegenerator.cpp \ $$PWD/generators/sqlitegenerator.cpp \
@ -51,6 +60,7 @@ SOURCES += \
$$PWD/types/dbgeography.cpp \ $$PWD/types/dbgeography.cpp \
$$PWD/tableset.cpp \ $$PWD/tableset.cpp \
$$PWD/query.cpp \ $$PWD/query.cpp \
$$PWD/bulkinserter.cpp \
$$PWD/databasemodel.cpp \ $$PWD/databasemodel.cpp \
$$PWD/tablesetbase.cpp \ $$PWD/tablesetbase.cpp \
$$PWD/changelogtable.cpp \ $$PWD/changelogtable.cpp \

View File

@ -21,16 +21,16 @@
#ifndef PHRASE_H #ifndef PHRASE_H
#define PHRASE_H #define PHRASE_H
#include "phrases/conditionalphrase.h" #include "conditionalphrase.h"
#include "phrases/abstractfieldphrase.h" #include "abstractfieldphrase.h"
#include "phrases/fieldphrase.h" #include "fieldphrase.h"
#include "phrases/phraselist.h" #include "phraselist.h"
#include "phrases/assignmentphraselist.h" #include "assignmentphraselist.h"
#include "phrases/phrasedatalist.h" #include "phrasedatalist.h"
#include "phrases/phrasedata.h" #include "phrasedata.h"
#include "phrases/assignmentphrase.h" #include "assignmentphrase.h"
#include "phrases/numericphrase.h" #include "numericphrase.h"
#include "phrases/datephrase.h" #include "datephrase.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE

View File

@ -21,7 +21,7 @@
#ifndef ABSTRACTFIELDPHRASE_H #ifndef ABSTRACTFIELDPHRASE_H
#define ABSTRACTFIELDPHRASE_H #define ABSTRACTFIELDPHRASE_H
#include "../defines.h" #include "defines.h"
#include "assignmentphrase.h" #include "assignmentphrase.h"
#include "conditionalphrase.h" #include "conditionalphrase.h"

View File

@ -21,7 +21,7 @@
#ifndef ASSIGNMENTPHRASE_H #ifndef ASSIGNMENTPHRASE_H
#define ASSIGNMENTPHRASE_H #define ASSIGNMENTPHRASE_H
#include "../defines.h" #include "defines.h"
#include "assignmentphraselist.h" #include "assignmentphraselist.h"

View File

@ -21,7 +21,7 @@
#ifndef ASSIGNMENTPHRASELIST_H #ifndef ASSIGNMENTPHRASELIST_H
#define ASSIGNMENTPHRASELIST_H #define ASSIGNMENTPHRASELIST_H
#include "../defines.h" #include "defines.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE

View File

@ -21,7 +21,7 @@
#ifndef FIELDPHRASE_H #ifndef FIELDPHRASE_H
#define FIELDPHRASE_H #define FIELDPHRASE_H
#include "../defines.h" #include "defines.h"
#include "abstractfieldphrase.h" #include "abstractfieldphrase.h"

View File

@ -21,7 +21,7 @@
#ifndef PHRASEDATA_H #ifndef PHRASEDATA_H
#define PHRASEDATA_H #define PHRASEDATA_H
#include "../defines.h" #include "defines.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE

View File

@ -21,7 +21,7 @@
#ifndef PHRASELIST_H #ifndef PHRASELIST_H
#define PHRASELIST_H #define PHRASELIST_H
#include "../defines.h" #include "defines.h"
#include "phrasedatalist.h" #include "phrasedatalist.h"

View File

@ -39,8 +39,8 @@
#include "query_p.h" #include "query_p.h"
#include "database.h" #include "database.h"
#include "databasemodel.h" #include "databasemodel.h"
#include "tablesetbase_p.h" #include "tablesetbase.h"
#include "generators/sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
#include "querybase_p.h" #include "querybase_p.h"
#include "phrase.h" #include "phrase.h"
#include "tablemodel.h" #include "tablemodel.h"
@ -119,7 +119,7 @@ Q_OUTOFLINE_TEMPLATE QList<O> Query<T>::select(const std::function<O (const QSql
d->joins.prepend(d->tableName); d->joins.prepend(d->tableName);
d->sql = d->database->sqlGenerator()->selectCommand(d->tableName, d->sql = d->database->sqlGenerator()->selectCommand(d->tableName,
SqlGeneratorBase::SingleField, AbstractSqlGenerator::SingleField,
QStringLiteral("*"), QStringLiteral("*"),
d->wherePhrase, d->wherePhrase,
d->relations, d->relations,
@ -354,7 +354,7 @@ Q_OUTOFLINE_TEMPLATE QList<F> Query<T>::select(const FieldPhrase<F> f)
d->joins.prepend(d->tableName); d->joins.prepend(d->tableName);
d->sql = d->database->sqlGenerator()->selectCommand( d->sql = d->database->sqlGenerator()->selectCommand(
d->tableName, d->tableName,
SqlGeneratorBase::SingleField, f.data->toString(), AbstractSqlGenerator::SingleField, f.data->toString(),
d->wherePhrase, d->wherePhrase,
d->relations, d->relations,
d->skip, d->take); d->skip, d->take);
@ -392,7 +392,7 @@ Q_OUTOFLINE_TEMPLATE int Query<T>::count()
d->select = QStringLiteral("COUNT(*)"); d->select = QStringLiteral("COUNT(*)");
d->sql = d->database->sqlGenerator()->selectCommand( d->sql = d->database->sqlGenerator()->selectCommand(
d->tableName, d->tableName,
SqlGeneratorBase::Count, AbstractSqlGenerator::Count,
QStringLiteral("*"), QStringLiteral("*"),
d->wherePhrase, d->wherePhrase,
d->relations); d->relations);
@ -411,7 +411,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query<T>::max(const FieldPhrase<int> &f)
d->joins.prepend(d->tableName); d->joins.prepend(d->tableName);
d->sql = d->database->sqlGenerator()->selectCommand( d->sql = d->database->sqlGenerator()->selectCommand(
d->tableName, d->tableName,
SqlGeneratorBase::Max, f.data->toString(), AbstractSqlGenerator::Max, f.data->toString(),
d->wherePhrase, d->wherePhrase,
d->relations); d->relations);
QSqlQuery q = d->database->exec(d->sql); QSqlQuery q = d->database->exec(d->sql);
@ -429,7 +429,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query<T>::min(const FieldPhrase<int> &f)
d->joins.prepend(d->tableName); d->joins.prepend(d->tableName);
d->sql = d->database->sqlGenerator()->selectCommand( d->sql = d->database->sqlGenerator()->selectCommand(
d->tableName, d->tableName,
SqlGeneratorBase::Min, f.data->toString(), AbstractSqlGenerator::Min, f.data->toString(),
d->wherePhrase, d->wherePhrase,
d->relations); d->relations);
QSqlQuery q = d->database->exec(d->sql); QSqlQuery q = d->database->exec(d->sql);
@ -447,7 +447,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query<T>::sum(const FieldPhrase<int> &f)
d->joins.prepend(d->tableName); d->joins.prepend(d->tableName);
d->sql = d->database->sqlGenerator()->selectCommand( d->sql = d->database->sqlGenerator()->selectCommand(
d->tableName, d->tableName,
SqlGeneratorBase::Sum, f.data->toString(), AbstractSqlGenerator::Sum, f.data->toString(),
d->wherePhrase, d->wherePhrase,
d->relations); d->relations);
QSqlQuery q = d->database->exec(d->sql); QSqlQuery q = d->database->exec(d->sql);
@ -465,7 +465,7 @@ Q_OUTOFLINE_TEMPLATE QVariant Query<T>::average(const FieldPhrase<int> &f)
d->joins.prepend(d->tableName); d->joins.prepend(d->tableName);
d->sql = d->database->sqlGenerator()->selectCommand( d->sql = d->database->sqlGenerator()->selectCommand(
d->tableName, d->tableName,
SqlGeneratorBase::Average, f.data->toString(), AbstractSqlGenerator::Average, f.data->toString(),
d->wherePhrase, d->wherePhrase,
d->relations); d->relations);
QSqlQuery q = d->database->exec(d->sql); QSqlQuery q = d->database->exec(d->sql);

View File

@ -1,7 +1,7 @@
#include "querybase_p.h" #include "querybase_p.h"
#include "table.h" #include "table.h"
#include "tablesetbase_p.h" #include "tablesetbase.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE

View File

@ -19,7 +19,7 @@
**************************************************************************/ **************************************************************************/
#include "database.h" #include "database.h"
#include "tablesetbase_p.h" #include "tablesetbase.h"
#include "databasemodel.h" #include "databasemodel.h"
#include "tablemodel.h" #include "tablemodel.h"
#include "table.h" #include "table.h"

View File

@ -26,8 +26,8 @@
#include "table_p.h" #include "table_p.h"
#include "database.h" #include "database.h"
#include "databasemodel.h" #include "databasemodel.h"
#include "generators/sqlgeneratorbase_p.h" #include "abstractsqlgenerator.h"
#include "tablesetbase_p.h" #include "tablesetbase.h"
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE

View File

@ -29,7 +29,7 @@
#include <QtSql/QSqlQuery> #include <QtSql/QSqlQuery>
#include "tablesetbase_p.h" #include "tablesetbase.h"
#include "table.h" #include "table.h"
#include "bulkinserter.h" #include "bulkinserter.h"
#include "databasemodel.h" #include "databasemodel.h"

View File

@ -20,7 +20,7 @@
#include "table.h" #include "table.h"
#include "database.h" #include "database.h"
#include "tablesetbase_p.h" #include "tablesetbase.h"
#include "databasemodel.h" #include "databasemodel.h"
#include "tablesetbasedata.h" #include "tablesetbasedata.h"

View File

@ -21,7 +21,7 @@
#ifndef DBGEOGRAPHY_H #ifndef DBGEOGRAPHY_H
#define DBGEOGRAPHY_H #define DBGEOGRAPHY_H
#include "../defines.h" #include "defines.h"
#include <QtCore/QObject> #include <QtCore/QObject>
#include <QtCore/qglobal.h> #include <QtCore/qglobal.h>
#include <QtCore/QVariant> #include <QtCore/QVariant>

View File

@ -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<QMetaType::Type> types; QList<QMetaType::Type> types;
types types

View File

@ -5,7 +5,7 @@
#include <QObject> #include <QObject>
namespace Nut { namespace Nut {
class SqlGeneratorBase; class AbstractSqlGenerator;
} }
class GeneratorsTest : public QObject class GeneratorsTest : public QObject
@ -33,7 +33,7 @@ class GeneratorsTest : public QObject
public: public:
explicit GeneratorsTest(QObject *parent = nullptr); explicit GeneratorsTest(QObject *parent = nullptr);
void types(Nut::SqlGeneratorBase *g, QString name); void types(Nut::AbstractSqlGenerator *g, QString name);
private slots: private slots:
void test_sqlite(); void test_sqlite();