diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-12-15 12:06:59 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-12-15 12:06:59 +0100 |
commit | d958bfd0f32bfe798809b72c1b51c990edfe141c (patch) | |
tree | c9c85d770db94239bc24679f31f2c015653b8daa /src/server/database/Database/AdhocStatement.cpp | |
parent | ee95a5e00fb2ee6928a819699ab93094d916d372 (diff) |
Core/Database: Replace DatabaseWorker with asio io_context
Diffstat (limited to 'src/server/database/Database/AdhocStatement.cpp')
-rw-r--r-- | src/server/database/Database/AdhocStatement.cpp | 40 |
1 files changed, 10 insertions, 30 deletions
diff --git a/src/server/database/Database/AdhocStatement.cpp b/src/server/database/Database/AdhocStatement.cpp index 39a753f0212..68c5e835b2c 100644 --- a/src/server/database/Database/AdhocStatement.cpp +++ b/src/server/database/Database/AdhocStatement.cpp @@ -18,41 +18,21 @@ #include "AdhocStatement.h" #include "MySQLConnection.h" #include "QueryResult.h" -#include <cstdlib> -#include <cstring> /*! Basic, ad-hoc queries. */ -BasicStatementTask::BasicStatementTask(char const* sql, bool async) : -m_result(nullptr) +QueryResult BasicStatementTask::Query(MySQLConnection* conn, char const* sql) { - m_sql = strdup(sql); - m_has_result = async; // If the operation is async, then there's a result - if (async) - m_result = new QueryResultPromise(); -} + ResultSet* result = conn->Query(sql); + if (!result || !result->GetRowCount() || !result->NextRow()) + { + delete result; + result = nullptr; + } -BasicStatementTask::~BasicStatementTask() -{ - free((void*)m_sql); - if (m_has_result && m_result != nullptr) - delete m_result; + return QueryResult(result); } -bool BasicStatementTask::Execute() +bool BasicStatementTask::Execute(MySQLConnection* conn, char const* sql) { - if (m_has_result) - { - ResultSet* result = m_conn->Query(m_sql); - if (!result || !result->GetRowCount() || !result->NextRow()) - { - delete result; - m_result->set_value(QueryResult(nullptr)); - return false; - } - - m_result->set_value(QueryResult(result)); - return true; - } - - return m_conn->Execute(m_sql); + return conn->Execute(sql); } |