diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-03-02 19:40:59 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-22 20:59:50 +0100 |
commit | ce9c7b477c8dbe8a1ef79bbb6e2a9f2214de44e0 (patch) | |
tree | a8eb285710d95b9727e1712436acc8c2a80d598f /src/server/database/Database/PreparedStatement.cpp | |
parent | 31efaaac4036903783ae9fa285f661a3f3d29012 (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.cpp | 64 |
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; } |