MessageXML xml;\r
long identityid;\r
long index;\r
+ bool inserted=false;\r
\r
StringFunctions::Split(message["Identifier"],"|",idparts);\r
StringFunctions::Convert(message["DataLength"],datalength);\r
st.Bind(5,xml.GetMessageID());\r
st.Bind(6,GetBoardID(xml.GetReplyBoard()));\r
st.Bind(7,xml.GetBody());\r
- st.Step(true);\r
+ inserted=st.Step(true);\r
int messageid=st.GetLastInsertRowID();\r
\r
- st=m_db->Prepare("INSERT INTO tblMessageBoard(MessageID,BoardID) VALUES(?,?);");\r
- for(std::vector<std::string>::iterator i=boards.begin(); i!=boards.end(); i++)\r
+ if(inserted==true)\r
{\r
- st.Bind(0,messageid);\r
- st.Bind(1,GetBoardID((*i)));\r
- st.Step();\r
- st.Reset();\r
- }\r
- st.Finalize();\r
\r
- st=m_db->Prepare("INSERT INTO tblMessageReplyTo(MessageID,ReplyToMessageUUID,ReplyOrder) VALUES(?,?,?);");\r
- std::map<long,std::string> replyto=xml.GetInReplyTo();\r
- for(std::map<long,std::string>::iterator j=replyto.begin(); j!=replyto.end(); j++)\r
+ st=m_db->Prepare("INSERT INTO tblMessageBoard(MessageID,BoardID) VALUES(?,?);");\r
+ for(std::vector<std::string>::iterator i=boards.begin(); i!=boards.end(); i++)\r
+ {\r
+ st.Bind(0,messageid);\r
+ st.Bind(1,GetBoardID((*i)));\r
+ st.Step();\r
+ st.Reset();\r
+ }\r
+ st.Finalize();\r
+\r
+ st=m_db->Prepare("INSERT INTO tblMessageReplyTo(MessageID,ReplyToMessageUUID,ReplyOrder) VALUES(?,?,?);");\r
+ std::map<long,std::string> replyto=xml.GetInReplyTo();\r
+ for(std::map<long,std::string>::iterator j=replyto.begin(); j!=replyto.end(); j++)\r
+ {\r
+ st.Bind(0,messageid);\r
+ st.Bind(1,(*j).second);\r
+ st.Bind(2,(*j).first);\r
+ st.Step();\r
+ st.Reset();\r
+ }\r
+ st.Finalize();\r
+\r
+ m_log->WriteLog(LogFile::LOGLEVEL_DEBUG,"MessageRequester::HandleAllData parsed Message XML file : "+message["Identifier"]);\r
+\r
+ }\r
+ else // couldn't insert - was already in database\r
{\r
- st.Bind(0,messageid);\r
- st.Bind(1,(*j).second);\r
- st.Bind(2,(*j).first);\r
- st.Step();\r
- st.Reset();\r
+ m_log->WriteLog(LogFile::LOGLEVEL_ERROR,"MessageRequester::HandleAddData could not insert message into database. "+message["Identifier"]);\r
}\r
- st.Finalize();\r
-\r
- m_log->WriteLog(LogFile::LOGLEVEL_DEBUG,"MessageRequester::HandleAllData parsed Message XML file : "+message["Identifier"]);\r
\r
}\r
else\r
m_fcp->SendMessage(message);\r
\r
m_requesting.push_back(requestid);\r
+\r
+ m_log->WriteLog(LogFile::LOGLEVEL_DEBUG,"MessageRequester::StartRequest requesting "+message["Identifier"]);\r
}\r
\r
m_ids[requestid]=true;\r