create constructor with accepting QSqlDatabase
This commit is contained in:
parent
2e9aac5204
commit
6417d78634
42
nut.pro
42
nut.pro
|
|
@ -6,4 +6,44 @@ TEMPLATE = lib
|
|||
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
include(nut.pri)
|
||||
HEADERS += \
|
||||
$$PWD/src/generators/sqlgeneratorbase_p.h \
|
||||
$$PWD/src/generators/postgresqlgenerator.h \
|
||||
$$PWD/src/generators/mysqlgenerator.h \
|
||||
$$PWD/src/generators/sqlitegenerator.h \
|
||||
$$PWD/src/generators/sqlservergenerator.h \
|
||||
$$PWD/src/types/dbgeography.h \
|
||||
$$PWD/src/tableset.h \
|
||||
$$PWD/src/defines_p.h \
|
||||
$$PWD/src/defines.h \
|
||||
$$PWD/src/query.h \
|
||||
$$PWD/src/databasemodel.h \
|
||||
$$PWD/src/changelogtable.h \
|
||||
$$PWD/src/tablesetbase_p.h \
|
||||
$$PWD/src/querybase_p.h \
|
||||
$$PWD/src/tablemodel.h \
|
||||
$$PWD/src/wherephrase.h \
|
||||
$$PWD/src/query_p.h \
|
||||
$$PWD/src/table.h \
|
||||
$$PWD/src/database.h \
|
||||
$$PWD/src/database_p.h \
|
||||
$$PWD/src/serializableobject.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/src/generators/sqlgeneratorbase.cpp \
|
||||
$$PWD/src/generators/postgresqlgenerator.cpp \
|
||||
$$PWD/src/generators/mysqlgenerator.cpp \
|
||||
$$PWD/src/generators/sqlitegenerator.cpp \
|
||||
$$PWD/src/generators/sqlservergenerator.cpp \
|
||||
$$PWD/src/types/dbgeography.cpp \
|
||||
$$PWD/src/tableset.cpp \
|
||||
$$PWD/src/query.cpp \
|
||||
$$PWD/src/databasemodel.cpp \
|
||||
$$PWD/src/tablesetbase.cpp \
|
||||
$$PWD/src/changelogtable.cpp \
|
||||
$$PWD/src/querybase.cpp \
|
||||
$$PWD/src/tablemodel.cpp \
|
||||
$$PWD/src/wherephrase.cpp \
|
||||
$$PWD/src/table.cpp \
|
||||
$$PWD/src/database.cpp \
|
||||
$$PWD/src/serializableobject.cpp
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ NUT_BEGIN_NAMESPACE
|
|||
qulonglong DatabasePrivate::lastId = 0;
|
||||
QMap<QString, DatabaseModel> DatabasePrivate::allTableMaps;
|
||||
|
||||
DatabasePrivate::DatabasePrivate(Database *parent) : q_ptr(parent)
|
||||
DatabasePrivate::DatabasePrivate(Database *parent) : q_ptr(parent), isDatabaseNew(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -63,6 +63,7 @@ bool DatabasePrivate::open(bool update)
|
|||
|
||||
db = QSqlDatabase::addDatabase(driver, connectionName);
|
||||
db.setHostName(hostName);
|
||||
db.setPort(port);
|
||||
db.setDatabaseName(databaseName);
|
||||
db.setUserName(userName);
|
||||
db.setPassword(password);
|
||||
|
|
@ -92,7 +93,7 @@ bool DatabasePrivate::open(bool update)
|
|||
return false;
|
||||
}
|
||||
|
||||
_databaseStatus = New;
|
||||
isDatabaseNew = true;
|
||||
return open(update);
|
||||
} else {
|
||||
qWarning("Unknown error detecting change logs, %s",
|
||||
|
|
@ -115,7 +116,7 @@ bool DatabasePrivate::updateDatabase()
|
|||
if (!getCurrectScheema())
|
||||
return true;
|
||||
|
||||
DatabaseModel last = _databaseStatus == New ? DatabaseModel() : getLastScheema();
|
||||
DatabaseModel last = isDatabaseNew ? DatabaseModel() : getLastScheema();
|
||||
DatabaseModel current = currentModel;
|
||||
|
||||
if (last == current) {
|
||||
|
|
@ -166,9 +167,9 @@ bool DatabasePrivate::getCurrectScheema()
|
|||
{
|
||||
Q_Q(Database);
|
||||
|
||||
//is not first instanicate of this class
|
||||
if (allTableMaps.contains(q->metaObject()->className())) {
|
||||
currentModel = allTableMaps[q->metaObject()->className()];
|
||||
qDebug() << "******************";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -316,13 +317,26 @@ Database::Database(QObject *parent)
|
|||
DatabasePrivate::lastId++;
|
||||
}
|
||||
|
||||
Database::Database(const Database &other, QObject *parent)
|
||||
: QObject(parent), d_ptr(new DatabasePrivate(this))
|
||||
Database::Database(const Database &other)
|
||||
: QObject(other.parent()), d_ptr(new DatabasePrivate(this))
|
||||
{
|
||||
DatabasePrivate::lastId++;
|
||||
|
||||
setDriver(other.driver());
|
||||
setHostName(other.hostName());
|
||||
setPort(other.port());
|
||||
setDatabaseName(other.databaseName());
|
||||
setUserName(other.userName());
|
||||
setPassword(other.password());
|
||||
}
|
||||
|
||||
Database::Database(const QSqlDatabase &other)
|
||||
{
|
||||
DatabasePrivate::lastId++;
|
||||
|
||||
setDriver(other.driver());
|
||||
setHostName(other.hostName());
|
||||
setPort(other.port());
|
||||
setDatabaseName(other.databaseName());
|
||||
setUserName(other.userName());
|
||||
setPassword(other.password());
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ class NUT_EXPORT Database : public QObject
|
|||
Q_DECLARE_PRIVATE(Database)
|
||||
|
||||
public:
|
||||
//TODO: create constructor with accepting QSqlDatabase
|
||||
Database(QObject *parent = 0);
|
||||
Database(const Database &other, QObject *parent = 0);
|
||||
~Database();
|
||||
|
|
|
|||
|
|
@ -67,13 +67,7 @@ public:
|
|||
|
||||
QSet<TableSetBase *> tableSets;
|
||||
|
||||
|
||||
enum DatabaseStatus{
|
||||
New,
|
||||
Modified,
|
||||
NotChanged
|
||||
};
|
||||
DatabaseStatus _databaseStatus;
|
||||
bool isDatabaseNew;
|
||||
};
|
||||
|
||||
NUT_END_NAMESPACE
|
||||
|
|
|
|||
Loading…
Reference in New Issue