diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-12-15 12:06:59 +0100 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2023-12-19 14:14:23 +0100 |
commit | e0d45f6dff3afe5caa38c48646f23d966c8c03a1 (patch) | |
tree | 6d1b9fef794cec268fa86398d9bb8957cf99f5ba /src/server/database/Database/PreparedStatement.cpp | |
parent | 575fc7fde329ab47e517357d74a47316c6413544 (diff) |
Core/Database: Replace DatabaseWorker with asio io_context
(cherry picked from commit d958bfd0f32bfe798809b72c1b51c990edfe141c)
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> |