MCPcopy Create free account
hub / github.com/YACReader/yacreader / loadDatabase

Method loadDatabase

YACReaderLibrary/db/data_base_management.cpp:130–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128}
129
130QSqlDatabase DataBaseManagement::loadDatabase(QString libraryDataPath)
131{
132 const QString dbPath = QDir::cleanPath(libraryDataPath + "/library.ydb");
133 if (!QFile::exists(dbPath)) {
134 return QSqlDatabase();
135 }
136
137 QString threadId = QString::number((quintptr)QThread::currentThreadId(), 16);
138 QString connectionName = dbPath + threadId;
139
140 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", connectionName);
141 db.setConnectOptions("QSQLITE_BUSY_TIMEOUT=2000");
142 db.setDatabaseName(dbPath);
143 if (!db.open()) {
144 const QString error = db.lastError().text();
145 db = QSqlDatabase();
146 QSqlDatabase::removeDatabase(connectionName);
147 QLOG_ERROR() << "loadDatabase: failed to open" << dbPath << error;
148 return QSqlDatabase();
149 }
150 QSqlQuery pragmaFK(db);
151 if (!pragmaFK.exec("PRAGMA foreign_keys = ON")) {
152 QLOG_ERROR() << "loadDatabase: failed to enable foreign keys for" << dbPath << pragmaFK.lastError().text();
153 }
154
155 return db;
156}
157
158QSqlDatabase DataBaseManagement::loadDatabaseFromFile(QString filePath)
159{

Callers

nothing calls this directly

Calls 4

QSqlDatabaseClass · 0.85
textMethod · 0.80
execMethod · 0.80
openMethod · 0.45

Tested by

no test coverage detected