diff options
Diffstat (limited to 'src/server/database/Database/PreparedStatement.cpp')
-rw-r--r-- | src/server/database/Database/PreparedStatement.cpp | 61 |
1 files changed, 47 insertions, 14 deletions
diff --git a/src/server/database/Database/PreparedStatement.cpp b/src/server/database/Database/PreparedStatement.cpp index 6cefaf14119..c387d7d6ad8 100644 --- a/src/server/database/Database/PreparedStatement.cpp +++ b/src/server/database/Database/PreparedStatement.cpp @@ -33,97 +33,84 @@ void PreparedStatementBase::setBool(const uint8 index, const bool value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_BOOL; } void PreparedStatementBase::setUInt8(const uint8 index, const uint8 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_UI8; } void PreparedStatementBase::setUInt16(const uint8 index, const uint16 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_UI16; } void PreparedStatementBase::setUInt32(const uint8 index, const uint32 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_UI32; } void PreparedStatementBase::setUInt64(const uint8 index, const uint64 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_UI64; } void PreparedStatementBase::setInt8(const uint8 index, const int8 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_I8; } void PreparedStatementBase::setInt16(const uint8 index, const int16 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_I16; } void PreparedStatementBase::setInt32(const uint8 index, const int32 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_I32; } void PreparedStatementBase::setInt64(const uint8 index, const int64 value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_I64; } void PreparedStatementBase::setFloat(const uint8 index, const float value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_FLOAT; } void PreparedStatementBase::setDouble(const uint8 index, const double value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_DOUBLE; } void PreparedStatementBase::setString(const uint8 index, const std::string& value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_STRING; } void PreparedStatementBase::setBinary(const uint8 index, const std::vector<uint8>& value) { ASSERT(index < statement_data.size()); statement_data[index].data = value; - statement_data[index].type = TYPE_BINARY; } void PreparedStatementBase::setNull(const uint8 index) { ASSERT(index < statement_data.size()); - statement_data[index].type = TYPE_NULL; + statement_data[index].data = nullptr; } //- Execution @@ -159,3 +146,49 @@ bool PreparedStatementTask::Execute() return m_conn->Execute(m_stmt); } + +template<typename T> +std::string PreparedStatementData::ToString(T value) +{ + return fmt::format("{}", value); +} + +std::string PreparedStatementData::ToString(bool value) +{ + return ToString<uint32>(value); +} + +std::string PreparedStatementData::ToString(uint8 value) +{ + return ToString<uint32>(value); +} + +template std::string PreparedStatementData::ToString<uint16>(uint16); +template std::string PreparedStatementData::ToString<uint32>(uint32); +template std::string PreparedStatementData::ToString<uint64>(uint64); + +std::string PreparedStatementData::ToString(int8 value) +{ + return ToString<int32>(value); +} + +template std::string PreparedStatementData::ToString<int16>(int16); +template std::string PreparedStatementData::ToString<int32>(int32); +template std::string PreparedStatementData::ToString<int64>(int64); +template std::string PreparedStatementData::ToString<float>(float); +template std::string PreparedStatementData::ToString<double>(double); + +std::string PreparedStatementData::ToString(std::string const& value) +{ + return fmt::format("'{}'", value); +} + +std::string PreparedStatementData::ToString(std::vector<uint8> const& /*value*/) +{ + return "BINARY"; +} + +std::string PreparedStatementData::ToString(std::nullptr_t) +{ + return "NULL"; +} |