X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fboard.cpp;h=7ccac3bc787aaa51b7507d525655c49b9da5aa75;hb=107bd97018964d48425306026d06afd038e84db0;hp=aee9339f4054bf6f4f20fdf2925e8247aac0b60c;hpb=4430e7762844c66428b6f822288beb71b7f82b95;p=fms.git diff --git a/src/board.cpp b/src/board.cpp index aee9339..7ccac3b 100644 --- a/src/board.cpp +++ b/src/board.cpp @@ -15,6 +15,7 @@ Board::Board() m_highmessageid=0; m_messagecount=0; m_savereceivedmessages=true; + m_addedmethod=""; } Board::Board(const long boardid) @@ -27,7 +28,7 @@ Board::Board(const std::string &boardname) Load(boardname); } -Board::Board(const long boardid, const std::string &boardname, const std::string &boarddescription, const std::string datecreated, const long lowmessageid, const long highmessageid, const long messagecount, const bool savereceivedmessages) +Board::Board(const long boardid, const std::string &boardname, const std::string &boarddescription, const std::string datecreated, const long lowmessageid, const long highmessageid, const long messagecount, const bool savereceivedmessages, const std::string &addedmethod) { m_boardid=boardid; m_boardname=boardname; @@ -36,6 +37,7 @@ Board::Board(const long boardid, const std::string &boardname, const std::string m_highmessageid=highmessageid; m_messagecount=messagecount; m_savereceivedmessages=savereceivedmessages; + m_addedmethod=addedmethod; SetDateFromString(datecreated); @@ -52,8 +54,9 @@ const bool Board::Load(const long boardid) m_lowmessageid=0; m_highmessageid=0; m_messagecount=0; + m_addedmethod=""; - SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardID=?;"); + SQLite3DB::Statement st=m_db->Prepare("SELECT BoardName, BoardDescription, DateAdded, HighMessageID, LowMessageID, MessageCount, SaveReceivedMessages, AddedMethod FROM tblBoard LEFT JOIN vwBoardStats ON tblBoard.BoardID=vwBoardStats.BoardID WHERE tblBoard.BoardID=?;"); st.Bind(0,boardid); st.Step(); @@ -88,6 +91,7 @@ const bool Board::Load(const long boardid) { m_savereceivedmessages=false; } + st.ResultText(7,m_addedmethod); return true; } @@ -97,8 +101,9 @@ const bool Board::Load(const long boardid) } } -const bool Board::Load(const std::string &boardname) +const bool Board::Load(const std::string &boardname) // same as loading form boardid - but using name { + /* SQLite3DB::Statement st=m_db->Prepare("SELECT BoardID FROM tblBoard WHERE BoardName=?;"); st.Bind(0,boardname); st.Step(); @@ -112,6 +117,64 @@ const bool Board::Load(const std::string &boardname) { return false; } + */ + + // clear current values + m_boardid=-1; + m_boardname=""; + m_boarddescription=""; + m_datecreated.Set(1970,1,1); + m_lowmessageid=0; + m_highmessageid=0; + m_messagecount=0; + int tempint=-1; + m_addedmethod=""; + + 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=?;"); + st.Bind(0,boardname); + st.Step(); + + if(st.RowReturned()) + { + int tempint; + std::string tempstr; + std::vector dateparts; + + st.ResultText(0,m_boardname); + st.ResultText(1,m_boarddescription); + st.ResultText(2,tempstr); + st.ResultInt(7,tempint); // boardid + m_boardid=tempint; + + SetDateFromString(tempstr); + + tempint=0; + st.ResultInt(3,tempint); + m_highmessageid=tempint; + tempint=0; + st.ResultInt(4,tempint); + m_lowmessageid=tempint; + tempint=0; + st.ResultInt(5,tempint); + m_messagecount=tempint; + st.ResultText(6,tempstr); + if(tempstr=="true") + { + m_savereceivedmessages=true; + } + else + { + m_savereceivedmessages=false; + } + st.ResultText(8,m_addedmethod); + + return true; + } + else + { + return false; + } + } void Board::SetDateFromString(const std::string &datestring)