Revert revision: 053bfe8ad9, this cause some crash.

Use dynamic_cast more is safer.
I think no more crash on db code.

--HG--
branch : trunk
This commit is contained in:
n0n4m3
2010-02-10 16:04:48 +03:00
parent 1e4684826e
commit 293ea07a25
3 changed files with 14 additions and 9 deletions

View File

@@ -33,17 +33,23 @@ void SqlStatement::Execute(Database *db)
void SqlTransaction::Execute(Database *db)
{
const char *sql;
if (m_queue.empty())
return;
db->DirectExecute("START TRANSACTION");
while(m_queue.next(sql))
while(!m_queue.empty())
{
char const *sql = m_queue.front();
m_queue.pop();
if(!db->DirectExecute(sql))
{
free((void*)const_cast<char*>(sql));
db->DirectExecute("ROLLBACK");
while(m_queue.next(sql))
while(!m_queue.empty())
{
free((void*)const_cast<char*>(sql));
free((void*)const_cast<char*>(m_queue.front()));
m_queue.pop();
}
return;
}