mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Database: Replace DatabaseWorker with asio io_context
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
BasicStatementTask::~BasicStatementTask()
|
||||
{
|
||||
free((void*)m_sql);
|
||||
if (m_has_result && m_result != nullptr)
|
||||
delete m_result;
|
||||
}
|
||||
|
||||
bool BasicStatementTask::Execute()
|
||||
{
|
||||
if (m_has_result)
|
||||
ResultSet* result = conn->Query(sql);
|
||||
if (!result || !result->GetRowCount() || !result->NextRow())
|
||||
{
|
||||
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;
|
||||
delete result;
|
||||
result = nullptr;
|
||||
}
|
||||
|
||||
return m_conn->Execute(m_sql);
|
||||
return QueryResult(result);
|
||||
}
|
||||
|
||||
bool BasicStatementTask::Execute(MySQLConnection* conn, char const* sql)
|
||||
{
|
||||
return conn->Execute(sql);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user