// // Binder.h // // Library: Data/MySQL // Package: MySQL // Module: Binder // // Definition of the Binder class. // // Copyright (c) 2008, Applied Informatics Software Engineering GmbH. // and Contributors. // // SPDX-License-Identifier: BSL-1.0 // #ifndef Data_MySQL_Binder_INCLUDED #define Data_MySQL_Binder_INCLUDED #include "MySQL.h" #include "Poco/Data/AbstractBinder.h" #include "Poco/Data/LOB.h" #include "MySQLException.h" #ifdef _WIN32 #pragma comment(lib, "Ws2_32.lib") #pragma comment(lib, "shlwapi.lib") #endif #include namespace Poco { namespace Data { namespace MySQL { class Binder: public Poco::Data::AbstractBinder /// Binds placeholders in the sql query to the provided values. Performs data types mapping. { public: typedef SharedPtr Ptr; Binder(); /// Creates the Binder. virtual ~Binder(); /// Destroys the Binder. virtual void bind(std::size_t pos, const Poco::Int8& val, Direction dir); /// Binds an Int8. virtual void bind(std::size_t pos, const Poco::UInt8& val, Direction dir); /// Binds an UInt8. virtual void bind(std::size_t pos, const Poco::Int16& val, Direction dir); /// Binds an Int16. virtual void bind(std::size_t pos, const Poco::UInt16& val, Direction dir); /// Binds an UInt16. virtual void bind(std::size_t pos, const Poco::Int32& val, Direction dir); /// Binds an Int32. virtual void bind(std::size_t pos, const Poco::UInt32& val, Direction dir); /// Binds an UInt32. virtual void bind(std::size_t pos, const Poco::Int64& val, Direction dir); /// Binds an Int64. virtual void bind(std::size_t pos, const Poco::UInt64& val, Direction dir); /// Binds an UInt64. #ifndef POCO_LONG_IS_64_BIT virtual void bind(std::size_t pos, const long& val, Direction dir = PD_IN); /// Binds a long. virtual void bind(std::size_t pos, const unsigned long& val, Direction dir = PD_IN); /// Binds an unsigned long. #endif // POCO_LONG_IS_64_BIT virtual void bind(std::size_t pos, const bool& val, Direction dir); /// Binds a boolean. virtual void bind(std::size_t pos, const float& val, Direction dir); /// Binds a float. virtual void bind(std::size_t pos, const double& val, Direction dir); /// Binds a double. virtual void bind(std::size_t pos, const char& val, Direction dir); /// Binds a single character. virtual void bind(std::size_t pos, const std::string& val, Direction dir); /// Binds a string. virtual void bind(std::size_t pos, const Poco::Data::BLOB& val, Direction dir); /// Binds a BLOB. virtual void bind(std::size_t pos, const Poco::Data::CLOB& val, Direction dir); /// Binds a CLOB. virtual void bind(std::size_t pos, const DateTime& val, Direction dir); /// Binds a DateTime. virtual void bind(std::size_t pos, const Date& val, Direction dir); /// Binds a Date. virtual void bind(std::size_t pos, const Time& val, Direction dir); /// Binds a Time. virtual void bind(std::size_t pos, const NullData& val, Direction dir); /// Binds a null. virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::deque& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::list& val, Direction dir = PD_IN); virtual void bind(std::size_t pos, const std::vector