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
|
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;
|
qulonglong DatabasePrivate::lastId = 0;
|
||||||
QMap<QString, DatabaseModel> DatabasePrivate::allTableMaps;
|
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 = QSqlDatabase::addDatabase(driver, connectionName);
|
||||||
db.setHostName(hostName);
|
db.setHostName(hostName);
|
||||||
|
db.setPort(port);
|
||||||
db.setDatabaseName(databaseName);
|
db.setDatabaseName(databaseName);
|
||||||
db.setUserName(userName);
|
db.setUserName(userName);
|
||||||
db.setPassword(password);
|
db.setPassword(password);
|
||||||
|
|
@ -92,7 +93,7 @@ bool DatabasePrivate::open(bool update)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
_databaseStatus = New;
|
isDatabaseNew = true;
|
||||||
return open(update);
|
return open(update);
|
||||||
} else {
|
} else {
|
||||||
qWarning("Unknown error detecting change logs, %s",
|
qWarning("Unknown error detecting change logs, %s",
|
||||||
|
|
@ -115,7 +116,7 @@ bool DatabasePrivate::updateDatabase()
|
||||||
if (!getCurrectScheema())
|
if (!getCurrectScheema())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
DatabaseModel last = _databaseStatus == New ? DatabaseModel() : getLastScheema();
|
DatabaseModel last = isDatabaseNew ? DatabaseModel() : getLastScheema();
|
||||||
DatabaseModel current = currentModel;
|
DatabaseModel current = currentModel;
|
||||||
|
|
||||||
if (last == current) {
|
if (last == current) {
|
||||||
|
|
@ -166,9 +167,9 @@ bool DatabasePrivate::getCurrectScheema()
|
||||||
{
|
{
|
||||||
Q_Q(Database);
|
Q_Q(Database);
|
||||||
|
|
||||||
|
//is not first instanicate of this class
|
||||||
if (allTableMaps.contains(q->metaObject()->className())) {
|
if (allTableMaps.contains(q->metaObject()->className())) {
|
||||||
currentModel = allTableMaps[q->metaObject()->className()];
|
currentModel = allTableMaps[q->metaObject()->className()];
|
||||||
qDebug() << "******************";
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -316,13 +317,26 @@ Database::Database(QObject *parent)
|
||||||
DatabasePrivate::lastId++;
|
DatabasePrivate::lastId++;
|
||||||
}
|
}
|
||||||
|
|
||||||
Database::Database(const Database &other, QObject *parent)
|
Database::Database(const Database &other)
|
||||||
: QObject(parent), d_ptr(new DatabasePrivate(this))
|
: QObject(other.parent()), d_ptr(new DatabasePrivate(this))
|
||||||
{
|
{
|
||||||
DatabasePrivate::lastId++;
|
DatabasePrivate::lastId++;
|
||||||
|
|
||||||
setDriver(other.driver());
|
setDriver(other.driver());
|
||||||
setHostName(other.hostName());
|
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());
|
setDatabaseName(other.databaseName());
|
||||||
setUserName(other.userName());
|
setUserName(other.userName());
|
||||||
setPassword(other.password());
|
setPassword(other.password());
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ class NUT_EXPORT Database : public QObject
|
||||||
Q_DECLARE_PRIVATE(Database)
|
Q_DECLARE_PRIVATE(Database)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
//TODO: create constructor with accepting QSqlDatabase
|
||||||
Database(QObject *parent = 0);
|
Database(QObject *parent = 0);
|
||||||
Database(const Database &other, QObject *parent = 0);
|
Database(const Database &other, QObject *parent = 0);
|
||||||
~Database();
|
~Database();
|
||||||
|
|
|
||||||
|
|
@ -67,13 +67,7 @@ public:
|
||||||
|
|
||||||
QSet<TableSetBase *> tableSets;
|
QSet<TableSetBase *> tableSets;
|
||||||
|
|
||||||
|
bool isDatabaseNew;
|
||||||
enum DatabaseStatus{
|
|
||||||
New,
|
|
||||||
Modified,
|
|
||||||
NotChanged
|
|
||||||
};
|
|
||||||
DatabaseStatus _databaseStatus;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
NUT_END_NAMESPACE
|
NUT_END_NAMESPACE
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue