diff options
Diffstat (limited to 'src/server/database/Database/PreparedStatement.cpp')
-rw-r--r-- | src/server/database/Database/PreparedStatement.cpp | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/src/server/database/Database/PreparedStatement.cpp b/src/server/database/Database/PreparedStatement.cpp index b806fb2ee48..fe20f1c0a7e 100644 --- a/src/server/database/Database/PreparedStatement.cpp +++ b/src/server/database/Database/PreparedStatement.cpp @@ -118,37 +118,21 @@ void PreparedStatementBase::setNull(const uint8 index) } //- Execution -PreparedStatementTask::PreparedStatementTask(PreparedStatementBase* stmt, bool async) : -m_stmt(stmt), m_result(nullptr) +PreparedQueryResult PreparedStatementTask::Query(MySQLConnection* conn, PreparedStatementBase* stmt) { - m_has_result = async; // If it's async, then there's a result - if (async) - m_result = new PreparedQueryResultPromise(); -} + PreparedResultSet* result = conn->Query(stmt); + if (!result || !result->GetRowCount()) + { + delete result; + result = nullptr; + } -PreparedStatementTask::~PreparedStatementTask() -{ - delete m_stmt; - if (m_has_result && m_result != nullptr) - delete m_result; + return PreparedQueryResult(result); } -bool PreparedStatementTask::Execute() +bool PreparedStatementTask::Execute(MySQLConnection* conn, PreparedStatementBase* stmt) { - if (m_has_result) - { - PreparedResultSet* result = m_conn->Query(m_stmt); - if (!result || !result->GetRowCount()) - { - delete result; - m_result->set_value(PreparedQueryResult(nullptr)); - return false; - } - m_result->set_value(PreparedQueryResult(result)); - return true; - } - - return m_conn->Execute(m_stmt); + return conn->Execute(stmt); } template<typename T> |