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 "phrases/phraselist.h"
#include "database.h"
#include "generators/sqlgeneratorbase_p.h"
#include "abstractsqlgenerator.h"
#include "databasemodel.h"
#include <QtCore/QDebug>

View File

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

View File

@ -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;

View File

@ -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:

View File

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

View File

@ -25,11 +25,11 @@
#include <QtCore/QVariant>
#include <QtCore/QDebug>
#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<QVariantList> &vars)
QString AbstractSqlGenerator::insertBulk(const QString &tableName, const PhraseList &ph, const QList<QVariantList> &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<RelationModel*> &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<RelationModel *> &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())

View File

@ -18,14 +18,13 @@
**
**************************************************************************/
#ifndef SQLGENERATORBASE_H
#define SQLGENERATORBASE_H
#ifndef NUT_ABSTRACTSQLGENERATOR_H
#define NUT_ABSTRACTSQLGENERATOR_H
#include <QtCore/qglobal.h>
#include <QtCore/QObject>
#include <QtCore/QStringList>
#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

View File

@ -19,7 +19,7 @@
**************************************************************************/
#include "mysqlgenerator.h"
#include "../tablemodel.h"
#include "tablemodel.h"
#include <QtCore/QPoint>
#include <QtCore/QPointF>
@ -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)

View File

@ -22,11 +22,11 @@
#define MYSQLGENERATOR_H
#include <QtCore/qglobal.h>
#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);

View File

@ -29,8 +29,8 @@
#include <QtCore/QJsonDocument>
#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

View File

@ -22,11 +22,11 @@
#define POSTGRESQLGENERATOR_H
#include <QtCore/qglobal.h>
#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);

View File

@ -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

View File

@ -22,11 +22,11 @@
#define SQLITEGENERATOR_H
#include <QtCore/qglobal.h>
#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);

View File

@ -19,8 +19,8 @@
**************************************************************************/
#include "sqlservergenerator.h"
#include "../table.h"
#include "../tablemodel.h"
#include "table.h"
#include "tablemodel.h"
#include <QtCore/QPoint>
#include <QtCore/QRegularExpression>
@ -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

View File

@ -22,11 +22,11 @@
#define SQLSERVERGENERATOR_H
#include <QtCore/qglobal.h>
#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);

View File

@ -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 \

View File

@ -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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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<O> Query<T>::select(const std::function<O (const QSql
d->joins.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<F> Query<T>::select(const FieldPhrase<F> 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<T>::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<T>::max(const FieldPhrase<int> &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<T>::min(const FieldPhrase<int> &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<T>::sum(const FieldPhrase<int> &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<T>::average(const FieldPhrase<int> &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);

View File

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

View File

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

View File

@ -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

View File

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

View File

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

View File

@ -21,7 +21,7 @@
#ifndef DBGEOGRAPHY_H
#define DBGEOGRAPHY_H
#include "../defines.h"
#include "defines.h"
#include <QtCore/QObject>
#include <QtCore/qglobal.h>
#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;
types

View File

@ -5,7 +5,7 @@
#include <QObject>
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();