//***************************************** //* This class is used to connect to the //* database. //***************************************** DatabaseConnection::DatabaseConnection(QString connection) { dbLocked = Unlocked; this->connection = connection; QLOG_DEBUG() << "SQL drivers available: " << QSqlDatabase::drivers(); QLOG_TRACE() << "Adding database SQLITE"; conn = QSqlDatabase::addDatabase("QSQLITE", connection); QLOG_TRACE() << "Setting DB name"; conn.setDatabaseName(global.fileManager.getDbDirPath("nixnote.db")); QLOG_TRACE() << "Opening database"; if (!conn.open()) { QLOG_ERROR() << "Error opening database: " << conn.lastError(); exit(16); } if (connection == "nixnote") global.db = this; QLOG_TRACE() << "Preparing tables"; // Start preparing the tables configStore = new ConfigStore(this); dataStore = new DataStore(this); NSqlQuery tempTable(this); // tempTable.exec("pragma cache_size=8096"); // tempTable.exec("pragma page_size=8096"); tempTable.exec("pragma busy_timeout=50000"); tempTable.exec("pragma journal_mode=wal"); // tempTable.exec("pragma SQLITE_THREADSAFE=2"); if (connection == "nixnote") { tempTable.exec("pragma COMPILE_OPTIONS"); QLOG_DEBUG() << "*** SQLITE COMPILE OPTIONS ***"; while (tempTable.next()) { QLOG_DEBUG() << tempTable.value(0).toString(); } int value = global.getDatabaseVersion(); if (value < 2) { QLOG_DEBUG() << "*****************"; QLOG_DEBUG() << "Upgrading Database"; DatabaseUpgrade dbu; dbu.fixSql(); } global.setDatabaseVersion(2); } QLOG_TRACE() << "Creating filter table"; tempTable.exec("Create table if not exists filter (lid integer)"); tempTable.exec("delete from filter"); QLOG_TRACE() << "Adding to filter table"; tempTable.exec("insert into filter select distinct lid from NoteTable;"); QLOG_TRACE() << "Addition complete"; tempTable.finish(); }