aboutsummaryrefslogtreecommitdiff
path: root/src/server/database/Database/PreparedStatement.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-03-02 19:40:59 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-22 20:59:50 +0100
commitce9c7b477c8dbe8a1ef79bbb6e2a9f2214de44e0 (patch)
treea8eb285710d95b9727e1712436acc8c2a80d598f /src/server/database/Database/PreparedStatement.cpp
parent31efaaac4036903783ae9fa285f661a3f3d29012 (diff)
Core/DBLayer: Refactor PreparedStatement class to not depend on MySQLPreparedStatement
(cherry picked from commit 5b0a32d164ba91207360d8b8a266b69dd0db9869)
Diffstat (limited to 'src/server/database/Database/PreparedStatement.cpp')
-rw-r--r--src/server/database/Database/PreparedStatement.cpp64
1 files changed, 1 insertions, 63 deletions
diff --git a/src/server/database/Database/PreparedStatement.cpp b/src/server/database/Database/PreparedStatement.cpp
index 4b536307973..6cefaf14119 100644
--- a/src/server/database/Database/PreparedStatement.cpp
+++ b/src/server/database/Database/PreparedStatement.cpp
@@ -24,71 +24,10 @@
#include "MySQLWorkaround.h"
PreparedStatementBase::PreparedStatementBase(uint32 index, uint8 capacity) :
- m_stmt(nullptr), m_index(index), statement_data(capacity) { }
+ m_index(index), statement_data(capacity) { }
PreparedStatementBase::~PreparedStatementBase() { }
-void PreparedStatementBase::BindParameters(MySQLPreparedStatement* stmt)
-{
- ASSERT(stmt);
- m_stmt = stmt;
-
- uint8 pos = 0;
- for (PreparedStatementData const& data : statement_data)
- {
- switch (data.type)
- {
- case TYPE_BOOL:
- stmt->setBool(pos, std::get<bool>(data.data));
- break;
- case TYPE_UI8:
- stmt->setUInt8(pos, std::get<uint8>(data.data));
- break;
- case TYPE_UI16:
- stmt->setUInt16(pos, std::get<uint16>(data.data));
- break;
- case TYPE_UI32:
- stmt->setUInt32(pos, std::get<uint32>(data.data));
- break;
- case TYPE_I8:
- stmt->setInt8(pos, std::get<int8>(data.data));
- break;
- case TYPE_I16:
- stmt->setInt16(pos, std::get<int16>(data.data));
- break;
- case TYPE_I32:
- stmt->setInt32(pos, std::get<int32>(data.data));
- break;
- case TYPE_UI64:
- stmt->setUInt64(pos, std::get<uint64>(data.data));
- break;
- case TYPE_I64:
- stmt->setInt64(pos, std::get<int64>(data.data));
- break;
- case TYPE_FLOAT:
- stmt->setFloat(pos, std::get<float>(data.data));
- break;
- case TYPE_DOUBLE:
- stmt->setDouble(pos, std::get<double>(data.data));
- break;
- case TYPE_STRING:
- stmt->setString(pos, std::get<std::string>(data.data));
- break;
- case TYPE_BINARY:
- stmt->setBinary(pos, std::get<std::vector<uint8>>(data.data));
- break;
- case TYPE_NULL:
- stmt->setNull(pos);
- break;
- }
- ++pos;
- }
- #ifdef _DEBUG
- if (pos < stmt->m_paramCount)
- TC_LOG_WARN("sql.sql", "[WARNING]: BindParameters() for statement %u did not bind all allocated parameters", m_index);
- #endif
-}
-
//- Bind to buffer
void PreparedStatementBase::setBool(const uint8 index, const bool value)
{
@@ -184,7 +123,6 @@ void PreparedStatementBase::setBinary(const uint8 index, const std::vector<uint8
void PreparedStatementBase::setNull(const uint8 index)
{
ASSERT(index < statement_data.size());
-
statement_data[index].type = TYPE_NULL;
}