aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/PreparedStatement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/database/Database/PreparedStatement.cpp')
-rw-r--r--src/server/database/Database/PreparedStatement.cpp36
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>