mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 21:14:33 -04:00
Create unique database connections per thread and remove them using the database connection name from the QSqlDatabase instance being used.
This commit is contained in:
@ -67,8 +67,9 @@ QSqlDatabase DataBaseManagement::createDatabase(QString name, QString path)
|
||||
}
|
||||
|
||||
QSqlDatabase DataBaseManagement::createDatabase(QString dest)
|
||||
{
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE",dest);
|
||||
{
|
||||
QString threadId = QString::number((long long)QThread::currentThreadId(), 16);
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE",dest+threadId);
|
||||
db.setDatabaseName(dest);
|
||||
if (!db.open())
|
||||
qDebug() << db.lastError();
|
||||
@ -92,9 +93,10 @@ QSqlDatabase DataBaseManagement::createDatabase(QString dest)
|
||||
|
||||
QSqlDatabase DataBaseManagement::loadDatabase(QString path)
|
||||
{
|
||||
//TODO check path
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE",path);
|
||||
db.setDatabaseName(path+"/library.ydb");
|
||||
//TODO check path
|
||||
QString threadId = QString::number((long long)QThread::currentThreadId(), 16);
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE",path+threadId);
|
||||
db.setDatabaseName(path + "/library.ydb");
|
||||
if (!db.open()) {
|
||||
//se devuelve una base de datos vacía e inválida
|
||||
|
||||
@ -108,8 +110,9 @@ QSqlDatabase DataBaseManagement::loadDatabase(QString path)
|
||||
|
||||
QSqlDatabase DataBaseManagement::loadDatabaseFromFile(QString filePath)
|
||||
{
|
||||
//TODO check path
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE",filePath);
|
||||
//TODO check path
|
||||
QString threadId = QString::number((long long)QThread::currentThreadId(), 16);
|
||||
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE",filePath+threadId);
|
||||
db.setDatabaseName(filePath);
|
||||
if (!db.open()) {
|
||||
//se devuelve una base de datos vacía e inválida
|
||||
@ -696,7 +699,8 @@ QString DataBaseManagement::checkValidDB(const QString & fullPath)
|
||||
}
|
||||
|
||||
db.close();
|
||||
QSqlDatabase::removeDatabase(fullPath);
|
||||
QSqlDatabase::removeDatabase(db.connectionName());
|
||||
|
||||
return versionString;
|
||||
}
|
||||
|
||||
@ -863,7 +867,7 @@ bool DataBaseManagement::updateToCurrentVersion(const QString & path)
|
||||
}
|
||||
|
||||
db.close();
|
||||
QSqlDatabase::removeDatabase(fullPath);
|
||||
QSqlDatabase::removeDatabase(db.connectionName());
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user