bool Database::DirectExecuteStmt(const SqlStatementID& id, SqlStmtParameters* params) { MANGOS_ASSERT(params); std::auto_ptr<SqlStmtParameters> p(params); //execute statement SqlConnection::Lock _guard(getAsyncConnection()); return _guard->ExecuteStmt(id.ID(), *params); }
bool Database::ExecuteStmt(const SqlStatementID& id, SqlStmtParameters* params) { if (!m_pAsyncConn) return false; SqlTransaction* pTrans = m_TransStorage->get(); if (pTrans) { //add SQL request to trans queue pTrans->DelayExecute(new SqlPreparedRequest(id.ID(), params)); } else { //if async execution is not available if (!m_bAllowAsyncTransactions) return DirectExecuteStmt(id, params); // Simple sql statement m_threadBody->Delay(new SqlPreparedRequest(id.ID(), params)); } return true; }