X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fdbsetup.cpp;h=2e0a460ea7824065a3fe9d72cd34d502b3243ac5;hb=278ee758050cb7772cd95946688c5b40104f4d8b;hp=9b2ab003a6d5ea31f04d6679886624472e9d3480;hpb=b88f50bfec6dbcd169bb8285e7c42b93baf52b6b;p=fms.git diff --git a/src/dbsetup.cpp b/src/dbsetup.cpp index 9b2ab00..2e0a460 100644 --- a/src/dbsetup.cpp +++ b/src/dbsetup.cpp @@ -16,6 +16,7 @@ void SetupDB() db->Open("fms.db3"); db->SetBusyTimeout(20000); // set timeout to 20 seconds + db->Execute("PRAGMA synchronous = FULL;"); db->Execute("CREATE TABLE IF NOT EXISTS tblDBVersion(\ Major INTEGER,\ @@ -401,6 +402,12 @@ void SetupDB() LocalIdentityID INTEGER\ );"); + // Temporary table for form passwords + db->Execute("CREATE TEMPORARY TABLE IF NOT EXISTS tmpFormPassword(\ + Date DATETIME,\ + Password TEXT\ + );"); + // low / high / message count for each board db->Execute("CREATE VIEW IF NOT EXISTS vwBoardStats AS \ SELECT tblBoard.BoardID AS 'BoardID', IFNULL(MIN(MessageID),0) AS 'LowMessageID', IFNULL(MAX(MessageID),0) AS 'HighMessageID', COUNT(MessageID) AS 'MessageCount' \ @@ -542,3 +549,27 @@ void SetupDB() db->Execute("ANALYZE;"); } + +const bool VerifyDB() +{ + SQLite3DB::DB *db=SQLite3DB::DB::Instance(); + SQLite3DB::Statement st=db->Prepare("PRAGMA integrity_check;"); + st.Step(); + if(st.RowReturned()) + { + std::string res=""; + st.ResultText(0,res); + if(res=="ok") + { + return true; + } + else + { + return false; + } + } + else + { + return false; + } +}