+ */\r
+\r
+ // clear current values\r
+ m_boardid=-1;\r
+ m_boardname="";\r
+ m_boarddescription="";\r
+ m_datecreated.assign(1970,1,1);\r
+ m_lowmessageid=0;\r
+ m_highmessageid=0;\r
+ m_messagecount=0;\r
+ int tempint=-1;\r
+ m_addedmethod="";\r
+\r
+ // Optimize query by not using vwBoardStats\r
+ //SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, tblBoard.BoardID, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardName=?;");\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, IFNULL(MAX(MessageID),'0') AS HighMessageID, IFNULL(MIN(MessageID),'0') AS LowMessageID, COUNT(MessageID) AS MessageCount, SaveReceivedMessages, tblBoard.BoardID, AddedMethod FROM tblBoard LEFT JOIN tblMessageBoard ON tblBoard.BoardID=tblMessageBoard.BoardID WHERE tblBoard.BoardName=? AND (MessageID IS NULL OR MessageID>=0);");\r
+ st.Bind(0,boardname);\r
+ st.Step();\r
+\r
+ if(st.RowReturned())\r
+ {\r
+ int tempint;\r
+ std::string tempstr;\r
+ std::vector<std::string> dateparts;\r
+\r
+ st.ResultText(0,m_boardname);\r
+ st.ResultText(1,m_boarddescription);\r
+ st.ResultText(2,tempstr);\r
+ st.ResultInt(7,tempint); // boardid\r
+ m_boardid=tempint;\r
+\r
+ SetDateFromString(tempstr);\r
+\r
+ tempint=0;\r
+ st.ResultInt(3,tempint);\r
+ m_highmessageid=tempint;\r
+ tempint=0;\r
+ st.ResultInt(4,tempint);\r
+ m_lowmessageid=tempint;\r
+ tempint=0;\r
+ st.ResultInt(5,tempint);\r
+ m_messagecount=tempint;\r
+ st.ResultText(6,tempstr);\r
+ if(tempstr=="true")\r
+ {\r
+ m_savereceivedmessages=true;\r
+ }\r
+ else\r
+ {\r
+ m_savereceivedmessages=false;\r
+ }\r
+ st.ResultText(8,m_addedmethod);\r
+\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+\r
+}\r
+\r
+void Board::SetDateFromString(const std::string &datestring)\r
+{\r
+ // break out date created - date should be in format yyyy-mm-dd HH:MM:SS, so we split on "-", " " (space), and ":"\r
+ int tzdiff=0;\r
+ if(Poco::DateTimeParser::tryParse(datestring,m_datecreated,tzdiff)==false)\r
+ {\r
+ m_log->error("Board::SetDateFromString could not parse date "+datestring);\r
+ }\r