From 195c37b7c21cb7836229ef4b051e2a0c067e13bb Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Mon, 18 Jun 2012 11:05:28 -0700 Subject: [PATCH] Fix another one. --- src/Ledger.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Ledger.cpp b/src/Ledger.cpp index 753f238726..3424fb2f64 100644 --- a/src/Ledger.cpp +++ b/src/Ledger.cpp @@ -236,6 +236,7 @@ uint256 Ledger::getHash() void Ledger::saveAcceptedLedger(Ledger::pointer ledger) { + std::string sql="INSERT INTO Ledgers " "(LedgerHash,LedgerSeq,PrevHash,TotalCoins,ClosingTime,AccountSetHash,TransSetHash) VALUES ('"; sql.append(ledger->getHash().GetHex()); @@ -254,6 +255,13 @@ void Ledger::saveAcceptedLedger(Ledger::pointer ledger) sql.append("');"); ScopedLock sl(theApp->getLedgerDB()->getDBLock()); + if (SQL_EXISTS(theApp->getLedgerDB()->getDB(), + boost::str(boost::format("SELECT LedgerSeq FROM Ledgers where LedgerSeq = '%d';") % ledger->mLedgerSeq) + )) + { + theApp->getLedgerDB()->getDB()->executeSQL( + boost::str(boost::format("DELETE FROM Ledgers WHERE LedgerSeq = '%d';") % ledger->mLedgerSeq)); + } theApp->getLedgerDB()->getDB()->executeSQL(sql); // write out dirty nodes