version 0.3.29
[fms.git] / src / threadbuilder.cpp
index cf21aab..79102b9 100644 (file)
@@ -3,32 +3,19 @@
 \r
 #include "../include/dbsetup.h"\r
 #include "../include/stringfunctions.h"\r
-#include "../include/option.h"\r
 \r
 const bool ThreadBuilder::Build(const long messageid, const long boardid, const bool bydate)\r
 {\r
        int count=0;\r
        int threadid=-1;\r
-       MessageThread mt;\r
+       MessageThread mt(m_db);\r
        std::vector<MessageThread::threadnode> m_threadmessages;\r
 \r
-       std::string ll="";\r
-       Option::Instance()->Get("LogLevel",ll);\r
-\r
-       // TODO - remove after corruption issue fixed\r
-       if(ll=="8")\r
-       {\r
-               std::string dbres=TestDBIntegrity();\r
-               std::string messageidstr="";\r
-               std::string boardidstr="";\r
-               StringFunctions::Convert(messageid,messageidstr);\r
-               StringFunctions::Convert(boardid,boardidstr);\r
-               m_log->trace("ThreadBuilder::Build start TestDBIntegrity("+messageidstr+","+boardidstr+") returned "+dbres);\r
-       }\r
-\r
        mt.Load(messageid,boardid,bydate);\r
        m_threadmessages=mt.GetNodes();\r
 \r
+       m_db->Execute("BEGIN;");\r
+\r
        // find threadid of this mesage if it already exists in a thread\r
        SQLite3DB::Statement st=m_db->Prepare("SELECT tblThread.ThreadID FROM tblThread INNER JOIN tblThreadPost ON tblThread.ThreadID=tblThreadPost.ThreadID WHERE tblThread.BoardID=? AND tblThreadPost.MessageID=?;");\r
        st.Bind(0,boardid);\r
@@ -68,16 +55,6 @@ const bool ThreadBuilder::Build(const long messageid, const long boardid, const
                }\r
        }\r
 \r
-       // TODO - remove after corruption issue fixed\r
-       if(ll=="8")\r
-       {\r
-               std::string dbres=TestDBIntegrity();\r
-               if(dbres!="ok")\r
-               {\r
-                       m_log->trace("ThreadBuilder::Build middle TestDBIntegrity returned "+dbres);\r
-               }\r
-       }\r
-\r
        if(m_threadmessages.size()>0)\r
        {\r
                SQLite3DB::Statement st2=m_db->Prepare("UPDATE tblThread SET FirstMessageID=?, LastMessageID=? WHERE ThreadID=?;");\r
@@ -86,30 +63,10 @@ const bool ThreadBuilder::Build(const long messageid, const long boardid, const
                st2.Bind(2,threadid);\r
                st2.Step();\r
 \r
-               // TODO - remove after corruption issue fixed\r
-               if(ll=="8")\r
-               {\r
-                       std::string dbres=TestDBIntegrity();\r
-                       if(dbres!="ok")\r
-                       {\r
-                               m_log->trace("ThreadBuilder::Build after thread update TestDBIntegrity returned "+dbres);\r
-                       }\r
-               }\r
-\r
                SQLite3DB::Statement st3=m_db->Prepare("DELETE FROM tblThreadPost WHERE ThreadID=?;");\r
                st3.Bind(0,threadid);\r
                st3.Step();\r
 \r
-               // TODO - remove after corruption issue fixed\r
-               if(ll=="8")\r
-               {\r
-                       std::string dbres=TestDBIntegrity();\r
-                       if(dbres!="ok")\r
-                       {\r
-                               m_log->trace("ThreadBuilder::Build after thread post delete TestDBIntegrity returned "+dbres);\r
-                       }\r
-               }\r
-\r
                SQLite3DB::Statement deleteotherst=m_db->Prepare("DELETE FROM tblThread WHERE ThreadID IN (SELECT tblThread.ThreadID FROM tblThreadPost INNER JOIN tblThread ON tblThreadPost.ThreadID=tblThread.ThreadID WHERE tblThread.BoardID=? AND tblThreadPost.MessageID=?);");\r
 \r
                count=0;\r
@@ -137,12 +94,7 @@ const bool ThreadBuilder::Build(const long messageid, const long boardid, const
                m_log->trace("ThreadBuilder::Build deleted thread");\r
        }\r
 \r
-       // TODO - remove after corruption issue fixed\r
-       if(ll=="8")\r
-       {\r
-               std::string dbres=TestDBIntegrity();\r
-               m_log->trace("ThreadBuilder::Build end TestDBIntegrity returned "+dbres);\r
-       }\r
+       m_db->Execute("COMMIT;");\r
 \r
        return true;\r
 \r