diff --git a/Data/Data_VS80.vcproj b/Data/Data_VS80.vcproj index 9698ec5cd..8d486e8f0 100644 --- a/Data/Data_VS80.vcproj +++ b/Data/Data_VS80.vcproj @@ -249,6 +249,18 @@ RelativePath=".\include\Poco\Data\BLOBStream.h" > + + + + + + @@ -281,6 +293,10 @@ RelativePath=".\include\Poco\Data\MetaColumn.h" > + + @@ -329,10 +345,6 @@ RelativePath=".\include\Poco\Data\StatementImpl.h" > - - @@ -377,6 +389,10 @@ RelativePath=".\src\BLOBStream.cpp" > + + @@ -397,6 +413,10 @@ RelativePath=".\src\MetaColumn.cpp" > + + @@ -441,10 +461,6 @@ RelativePath=".\src\StatementImpl.cpp" > - - diff --git a/Data/Makefile b/Data/Makefile index dbb35dbc6..81bcd54bf 100644 --- a/Data/Makefile +++ b/Data/Makefile @@ -9,13 +9,12 @@ include $(POCO_BASE)/build/rules/global objects = AbstractBinder AbstractBinding AbstractExtraction \ - AbstractExtractor AbstractPreparation AbstractPrepare \ + AbstractExtractor AbstractPreparation AbstractPrepare Bulk \ Connector BLOB BLOBStream DataException Date Limit MetaColumn \ - PooledSessionHolder PooledSessionImpl \ + PooledSessionHolder PooledSessionImpl Position \ Range RecordSet Row RowFormatter RowIterator \ Session SessionFactory SessionImpl \ - SessionPool Statement StatementCreator StatementImpl \ - Step Time + SessionPool Statement StatementCreator StatementImpl Time target = PocoData target_version = $(LIBVERSION) diff --git a/Data/ODBC/Makefile b/Data/ODBC/Makefile index 6c77fff19..4893db2e5 100644 --- a/Data/ODBC/Makefile +++ b/Data/ODBC/Makefile @@ -17,8 +17,8 @@ $(error No ODBC library found. Please install unixODBC or iODBC and try again) endif objects = Binder ConnectionHandle Connector EnvironmentHandle \ - Extractor ODBCColumn ODBCException ODBCStatementImpl Parameter Preparation \ - SessionImpl TypeInfo Unicode Utility + Extractor ODBCColumn ODBCException ODBCStatementImpl \ + Parameter Preparation SessionImpl TypeInfo Unicode Utility target = PocoODBC target_version = $(LIBVERSION) diff --git a/Data/ODBC/include/Poco/Data/ODBC/Binder.h b/Data/ODBC/include/Poco/Data/ODBC/Binder.h index a60db404d..9714ece28 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/Binder.h +++ b/Data/ODBC/include/Poco/Data/ODBC/Binder.h @@ -81,6 +81,7 @@ public: }; Binder(const StatementHandle& rStmt, + std::size_t maxFieldSize, ParameterBinding dataBinding = PB_IMMEDIATE, TypeInfo* pDataTypes = 0); /// Creates the Binder. @@ -91,62 +92,119 @@ public: void bind(std::size_t pos, const Poco::Int8& val, Direction dir); /// Binds an Int8. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an Int8 vector. + void bind(std::size_t pos, const Poco::UInt8& val, Direction dir); /// Binds an UInt8. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an UInt8 vector. + void bind(std::size_t pos, const Poco::Int16& val, Direction dir); /// Binds an Int16. + + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an Int16 vector. void bind(std::size_t pos, const Poco::UInt16& val, Direction dir); /// Binds an UInt16. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an UInt16 vector. + void bind(std::size_t pos, const Poco::Int32& val, Direction dir); /// Binds an Int32. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an Int32 vector. + void bind(std::size_t pos, const Poco::UInt32& val, Direction dir); /// Binds an UInt32. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an UInt32 vector. + void bind(std::size_t pos, const Poco::Int64& val, Direction dir); /// Binds an Int64. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an Int64 vector. + void bind(std::size_t pos, const Poco::UInt64& val, Direction dir); /// Binds an UInt64. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds an UInt64 vector. + #ifndef POCO_LONG_IS_64_BIT void bind(std::size_t pos, const long& val, Direction dir); /// Binds a long. + + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a long vector. #endif void bind(std::size_t pos, const bool& val, Direction dir); /// Binds a boolean. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a boolean vector. + void bind(std::size_t pos, const float& val, Direction dir); /// Binds a float. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a float vector. + void bind(std::size_t pos, const double& val, Direction dir); /// Binds a double. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a double vector. + void bind(std::size_t pos, const char& val, Direction dir); /// Binds a single character. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a character vector. + void bind(std::size_t pos, const std::string& val, Direction dir); /// Binds a string. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a string vector. + void bind(std::size_t pos, const BLOB& val, Direction dir); /// Binds a BLOB. In-bound only. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a BLOB vector. In-bound only. + void bind(std::size_t pos, const Date& val, Direction dir); /// Binds a Date. + void bind(std::size_t pos, const std::vector& val, Direction dir); + /// Binds a Date vector. + void bind(std::size_t pos, const Time& val, Direction dir); /// Binds a Time. + void bind(std::size_t pos, const std::vector