+ ThreadBuilder tb;\r
+ SQLite3DB::Statement boardst=m_db->Prepare("SELECT BoardID FROM tblBoard WHERE Forum='true';");\r
+ // select messages for a board that aren't in a thread\r
+ SQLite3DB::Statement selectst=m_db->Prepare("SELECT tblMessage.MessageID FROM tblMessage \\r
+ INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID\\r
+ LEFT JOIN tblThreadPost ON tblMessage.MessageID=tblThreadPost.MessageID \\r
+ LEFT JOIN tblThread ON tblThreadPost.ThreadID=tblThread.ThreadID\\r
+ WHERE tblMessageBoard.BoardID=? AND tblThread.BoardID IS NULL;");\r
+\r
+ boardst.Step();\r
+ while(boardst.RowReturned())\r
+ {\r
+ int boardid=-1;\r
+\r
+ boardst.ResultInt(0,boardid);\r
+\r
+ selectst.Bind(0,boardid);\r
+ selectst.Step();\r
+\r
+ while(selectst.RowReturned())\r
+ {\r
+ int messageid=-1;\r
+\r
+ selectst.ResultInt(0,messageid);\r
+\r
+ tb.Build(messageid,boardid,true);\r
+\r
+ selectst.Step();\r
+ }\r
+ selectst.Reset();\r
+\r
+ boardst.Step();\r
+ }\r
+\r
+ // now rebuild threads where the message has been deleted\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT tblThreadPost.MessageID, tblThread.BoardID FROM tblThreadPost INNER JOIN tblThread ON tblThreadPost.ThreadID=tblThread.ThreadID LEFT JOIN tblMessage ON tblThreadPost.MessageID=tblMessage.MessageID WHERE tblMessage.MessageID IS NULL;");\r
+ st.Step();\r
+ while(st.RowReturned())\r
+ {\r
+ int messageid=-1;\r
+ int boardid=-1;\r
+\r
+ st.ResultInt(0,messageid);\r
+ st.ResultInt(1,boardid);\r
+\r
+ tb.Build(messageid,boardid,true);\r
+\r
+ st.Step();\r
+ }\r
+\r