diff options
Diffstat (limited to 'src/server/database/Database/PreparedStatement.h')
-rw-r--r-- | src/server/database/Database/PreparedStatement.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/server/database/Database/PreparedStatement.h b/src/server/database/Database/PreparedStatement.h index ddc731625fa..33ef04287cd 100644 --- a/src/server/database/Database/PreparedStatement.h +++ b/src/server/database/Database/PreparedStatement.h @@ -78,7 +78,7 @@ class TC_DATABASE_API PreparedStatement friend class MySQLConnection; public: - explicit PreparedStatement(uint32 index); + PreparedStatement(uint32 index, uint8 capacity); ~PreparedStatement(); void setBool(const uint8 index, const bool value); @@ -97,12 +97,14 @@ class TC_DATABASE_API PreparedStatement void setNull(const uint8 index); protected: - void BindParameters(); + void BindParameters(MySQLPreparedStatement* stmt); protected: MySQLPreparedStatement* m_stmt; uint32 m_index; - std::vector<PreparedStatementData> statement_data; //- Buffer of parameters, not tied to MySQL in any way yet + + //- Buffer of parameters, not tied to MySQL in any way yet + std::vector<PreparedStatementData> statement_data; PreparedStatement(PreparedStatement const& right) = delete; PreparedStatement& operator=(PreparedStatement const& right) = delete; @@ -117,7 +119,7 @@ class TC_DATABASE_API MySQLPreparedStatement friend class PreparedStatement; public: - MySQLPreparedStatement(MYSQL_STMT* stmt); + MySQLPreparedStatement(MYSQL_STMT* stmt, std::string queryString); ~MySQLPreparedStatement(); void setBool(const uint8 index, const bool value); @@ -134,13 +136,15 @@ class TC_DATABASE_API MySQLPreparedStatement void setBinary(const uint8 index, const std::vector<uint8>& value, bool isString); void setNull(const uint8 index); + uint32 GetParameterCount() const { return m_paramCount; } + protected: MYSQL_STMT* GetSTMT() { return m_Mstmt; } MYSQL_BIND* GetBind() { return m_bind; } PreparedStatement* m_stmt; void ClearParameters(); - bool CheckValidIndex(uint8 index); - std::string getQueryString(std::string const& sqlPattern) const; + void AssertValidIndex(uint8 index); + std::string getQueryString() const; private: void setValue(MYSQL_BIND* param, enum_field_types type, const void* value, uint32 len, bool isUnsigned); @@ -150,6 +154,7 @@ class TC_DATABASE_API MySQLPreparedStatement uint32 m_paramCount; std::vector<bool> m_paramsSet; MYSQL_BIND* m_bind; + std::string const m_queryString; MySQLPreparedStatement(MySQLPreparedStatement const& right) = delete; MySQLPreparedStatement& operator=(MySQLPreparedStatement const& right) = delete; |