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

Method loadDatabaseFromFile

YACReaderLibrary/db/data_base_management.cpp:158–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156}
157
158QSqlDatabase DataBaseManagement::loadDatabaseFromFile(QString filePath)
159{
160 const QString dbPath = QDir::cleanPath(filePath);
161 if (!QFile::exists(dbPath)) {
162 return QSqlDatabase();
163 }
164
165 QString threadId = QString::number((quintptr)QThread::currentThreadId(), 16);
166 QString connectionName = dbPath + threadId;
167 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", connectionName);
168 db.setConnectOptions("QSQLITE_BUSY_TIMEOUT=2000");
169 db.setDatabaseName(dbPath);
170 if (!db.open()) {
171 // se devuelve una base de datos vacía e inválida
172
173 const QString error = db.lastError().text();
174 db = QSqlDatabase();
175 QSqlDatabase::removeDatabase(connectionName);
176 QLOG_ERROR() << "loadDatabaseFromFile: failed to open" << dbPath << error;
177 return QSqlDatabase();
178 }
179 QSqlQuery pragmaFK(db);
180 if (!pragmaFK.exec("PRAGMA foreign_keys = ON")) {
181 QLOG_ERROR() << "loadDatabaseFromFile: failed to enable foreign keys for" << dbPath << pragmaFK.lastError().text();
182 }
183
184 return db;
185}
186
187bool DataBaseManagement::createTables(QSqlDatabase &database)
188{

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