From abe37e458c2b482d478ce98ba44bc8dcf76caeb1 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Wed, 10 Aug 2016 16:02:22 +0200 Subject: Server/Database: Reduce differences between 3.3.5 and 6.x branches Cherry-pick 1bea52fd4649b6a1761aa157f9e74f01e19872e7 and 543bea32 to add support to TYPE_BINARY MySQL field type --- src/server/database/Database/Field.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/server/database/Database/Field.h') diff --git a/src/server/database/Database/Field.h b/src/server/database/Database/Field.h index 123e25dbbf3..6089c3001fb 100644 --- a/src/server/database/Database/Field.h +++ b/src/server/database/Database/Field.h @@ -271,7 +271,6 @@ class TC_DATABASE_API Field } #endif return static_cast(data.value); - } std::string GetString() const @@ -286,6 +285,17 @@ class TC_DATABASE_API Field return std::string(string, data.length); } + std::vector GetBinary() const + { + std::vector result; + if (!data.value || !data.length) + return result; + + result.resize(data.length); + memcpy(result.data(), data.value, data.length); + return result; + } + bool IsNull() const { return data.value == NULL; @@ -313,7 +323,7 @@ class TC_DATABASE_API Field #pragma pack(pop) void SetByteValue(void* newValue, enum_field_types newType, uint32 length); - void SetStructuredValue(char* newValue, enum_field_types newType); + void SetStructuredValue(char* newValue, enum_field_types newType, uint32 length); void CleanUp() { -- cgit v1.2.3