Some fixes to the SQL statements.

This commit is contained in:
JoelKatz
2011-12-03 21:49:27 -08:00
parent 40054b5431
commit 7374943b13

View File

@@ -42,22 +42,23 @@ bool HashedObject::store() const
#ifdef DEBUG #ifdef DEBUG
assert(checkHash()); assert(checkHash());
#endif #endif
std::string sql="INSERT INTO CommitedObjects (Hash,ObjType,LedgerIndex,Object) values ("; std::string sql="INSERT INTO CommitedObjects (Hash,ObjType,LedgerIndex,Object) values ('";
sql.append(mHash.GetHex()); sql.append(mHash.GetHex());
switch(mType) switch(mType)
{ {
case LEDGER: sql.append(",L,"); break; case LEDGER: sql.append("','L','"); break;
case TRANSACTION: sql.append(",T,"); break; case TRANSACTION: sql.append("','T','"); break;
case ACCOUNT_NODE: sql.append(",A,"); break; case ACCOUNT_NODE: sql.append("','A','"); break;
case TRANSACTION_NODE: sql.append(",N,"); break; case TRANSACTION_NODE: sql.append("','N','"); break;
default: sql.append(",U,"); break; default: sql.append("','U','"); break;
} }
sql.append(boost::lexical_cast<std::string>(mLedgerIndex)); sql.append(boost::lexical_cast<std::string>(mLedgerIndex));
sql.append(","); sql.append("',");
std::string obj; std::string obj;
theApp->getDB()->escape(&(mData.front()), mData.size(), obj); theApp->getDB()->escape(&(mData.front()), mData.size(), obj);
sql.append(obj); sql.append(obj);
sql.append(");");
ScopedLock sl(theApp->getDBLock()); ScopedLock sl(theApp->getDBLock());
Database* db=theApp->getDB(); Database* db=theApp->getDB();
@@ -66,8 +67,9 @@ bool HashedObject::store() const
HashedObject::pointer retrieve(const uint256& hash) HashedObject::pointer retrieve(const uint256& hash)
{ {
std::string sql="SELECT * from CommitedOjects where Hash="; std::string sql="SELECT * from CommitedObjects where Hash='";
sql.append(hash.GetHex()); sql.append(hash.GetHex());
sql.append("';");
std::string type; std::string type;
uint32 index; uint32 index;