mt.Load(messageid,boardid,bydate);\r
m_threadmessages=mt.GetNodes();\r
\r
- //m_db->Execute("BEGIN;");\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.Reset();\r
\r
}\r
+ st.Finalize();\r
\r
// thread doesn't exist - create it\r
if(threadid==-1)\r
logmessage+="update bind fmessageid=" + temp1 + " lmessageid=" + temp2 + " threadid=" + temp3 + " | ";\r
}\r
\r
- SQLite3DB::Statement st3=m_db->Prepare("DELETE FROM tblThreadPost WHERE ThreadID=?;");\r
- st3.Bind(0,threadid);\r
- st3.Step();\r
-\r
- if(ll=="8")\r
- {\r
- std::string temp1("");\r
- StringFunctions::Convert(threadid,temp1);\r
-\r
- logmessage+="delete bind threadid=" + temp1 + " | ";\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
+ 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.ThreadID<>? AND tblThread.BoardID=? AND tblThreadPost.MessageID=?);");\r
\r
count=0;\r
- SQLite3DB::Statement st4=m_db->Prepare("INSERT INTO tblThreadPost(ThreadID,MessageID,PostOrder) VALUES(?,?,?);");\r
+ SQLite3DB::Statement st4=m_db->Prepare("INSERT OR REPLACE INTO tblThreadPost(ThreadID,MessageID,PostOrder) VALUES(?,?,?);");\r
for(std::vector<MessageThread::threadnode>::const_iterator i=m_threadmessages.begin(); i!=m_threadmessages.end(); i++, count++)\r
{\r
- deleteotherst.Bind(0,boardid);\r
- deleteotherst.Bind(1,(*i).m_messageid);\r
+ deleteotherst.Bind(0,threadid);\r
+ deleteotherst.Bind(1,boardid);\r
+ deleteotherst.Bind(2,(*i).m_messageid);\r
deleteotherst.Step();\r
deleteotherst.Reset();\r
\r
\r
st.Finalize();\r
\r
- //m_db->Execute("COMMIT;");\r
+ m_db->Execute("COMMIT;");\r
\r
if(ll=="8")\r
{\r