From 32f3f4a1466774b88a547dc0adbf982dad07cb15 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Sun, 28 Feb 2016 11:06:08 -0600 Subject: [PATCH] merge Data changes (ODBC Sybase, PostgreSQL etc) --- Data/Data_vs120.vcxproj | 53 +- Data/Data_x64_vs120.vcxproj | 56 +- Data/MySQL/include/Poco/Data/MySQL/Binder.h | 50 +- .../Poco/Data/MySQL/MySQLStatementImpl.h | 2 +- Data/MySQL/src/Binder.cpp | 48 +- Data/MySQL/src/MySQLStatementImpl.cpp | 4 +- Data/ODBC/ODBC_vs120.vcxproj | 9 +- Data/ODBC/ODBC_x64_vs120.vcxproj | 124 +- Data/ODBC/include/Poco/Data/ODBC/Binder.h | 220 ++-- .../include/Poco/Data/ODBC/ConnectionHandle.h | 12 +- .../ODBC/include/Poco/Data/ODBC/Diagnostics.h | 15 +- .../Poco/Data/ODBC/EnvironmentHandle.h | 12 +- Data/ODBC/include/Poco/Data/ODBC/Extractor.h | 7 +- .../include/Poco/Data/ODBC/ODBCException.h | 16 +- .../include/Poco/Data/ODBC/ODBCMetaColumn.h | 11 +- .../Poco/Data/ODBC/ODBCStatementImpl.h | 14 +- Data/ODBC/include/Poco/Data/ODBC/Preparator.h | 17 +- .../ODBC/include/Poco/Data/ODBC/SessionImpl.h | 40 + Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h | 21 + .../include/Poco/Data/ODBC/Unicode_UNIXODBC.h | 7 - Data/ODBC/src/Binder.cpp | 305 +++-- Data/ODBC/src/ConnectionHandle.cpp | 19 +- Data/ODBC/src/EnvironmentHandle.cpp | 41 +- Data/ODBC/src/Extractor.cpp | 37 +- Data/ODBC/src/ODBCMetaColumn.cpp | 58 +- Data/ODBC/src/ODBCStatementImpl.cpp | 123 +- Data/ODBC/src/Preparator.cpp | 22 +- Data/ODBC/src/SessionImpl.cpp | 57 +- Data/ODBC/src/TypeInfo.cpp | 53 +- Data/ODBC/src/Unicode_UNIXODBC.cpp | 2 + Data/ODBC/src/Utility.cpp | 4 +- Data/ODBC/testsuite/Makefile | 2 +- Data/ODBC/testsuite/TestSuite_vs120.vcxproj | 13 +- .../testsuite/TestSuite_vs120.vcxproj.filters | 8 +- .../testsuite/TestSuite_x64_vs110.vcxproj | 2 + .../testsuite/TestSuite_x64_vs120.vcxproj | 100 +- .../TestSuite_x64_vs120.vcxproj.filters | 9 + Data/ODBC/testsuite/src/ODBCAccessTest.cpp | 6 +- Data/ODBC/testsuite/src/ODBCDB2Test.cpp | 424 +++++-- Data/ODBC/testsuite/src/ODBCDB2Test.h | 2 + Data/ODBC/testsuite/src/ODBCMySQLTest.cpp | 71 +- Data/ODBC/testsuite/src/ODBCOracleTest.cpp | 139 +-- .../ODBC/testsuite/src/ODBCPostgreSQLTest.cpp | 195 +-- Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp | 67 +- Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp | 63 +- Data/ODBC/testsuite/src/ODBCTest.cpp | 82 +- Data/ODBC/testsuite/src/ODBCTest.h | 12 + Data/ODBC/testsuite/src/ODBCTestSuite.cpp | 2 + Data/ODBC/testsuite/src/SQLExecutor.cpp | 1050 ++++++++++++----- Data/ODBC/testsuite/src/SQLExecutor.h | 147 ++- Data/SQLite/include/Poco/Data/SQLite/Binder.h | 94 +- .../Poco/Data/SQLite/SQLiteStatementImpl.h | 2 +- Data/SQLite/src/Binder.cpp | 26 +- Data/SQLite/src/SQLiteStatementImpl.cpp | 7 +- Data/include/Poco/Data/AbstractBinder.h | 128 +- Data/include/Poco/Data/Binding.h | 7 + Data/include/Poco/Data/Extraction.h | 43 +- Data/include/Poco/Data/Position.h | 10 +- Data/include/Poco/Data/RecordSet.h | 41 +- Data/include/Poco/Data/Row.h | 23 +- Data/include/Poco/Data/Statement.h | 28 +- Data/include/Poco/Data/StatementImpl.h | 53 +- Data/include/Poco/Data/TypeHandler.h | 24 +- Data/src/AbstractBinder.cpp | 96 +- Data/src/RecordSet.cpp | 15 +- Data/src/Row.cpp | 15 +- Data/src/RowIterator.cpp | 10 +- Data/src/StatementImpl.cpp | 90 +- Data/testsuite/TestSuite_vs120.vcxproj | 12 +- Data/testsuite/src/Binder.cpp | 46 +- Data/testsuite/src/Binder.h | 46 +- Data/testsuite/src/DataTest.cpp | 5 + Data/testsuite/src/TestStatementImpl.cpp | 2 +- Data/testsuite/src/TestStatementImpl.h | 2 +- Foundation/Foundation_vs120.vcxproj | 8 +- Foundation/Foundation_x64_vs120.vcxproj | 11 +- Foundation/testsuite/TestSuite_vs120.vcxproj | 9 +- .../testsuite/TestSuite_x64_vs120.vcxproj | 9 +- buildwin.ps1 | 4 +- 79 files changed, 3174 insertions(+), 1545 deletions(-) diff --git a/Data/Data_vs120.vcxproj b/Data/Data_vs120.vcxproj index c79317c55..621e408a1 100644 --- a/Data/Data_vs120.vcxproj +++ b/Data/Data_vs120.vcxproj @@ -1,4 +1,4 @@ - + @@ -32,7 +32,7 @@ Data Win32Proj - + StaticLibrary MultiByte @@ -63,27 +63,27 @@ MultiByte v120 - - + + - + - + - + - + - + - + - + <_ProjectFileVersion>12.0.30501.0 PocoDatad @@ -125,17 +125,18 @@ .\include;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) true - true + false EnableFastChecks MultiThreadedDebugDLL true true true true - + Level3 ProgramDatabase Default + true ..\bin\PocoDatad.dll @@ -163,9 +164,9 @@ true true true - + Level3 - + Default @@ -186,18 +187,19 @@ .\include;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true - true + false EnableFastChecks MultiThreadedDebug true true true true - + ..\lib\PocoDatamtd.pdb Level3 ProgramDatabase Default + true ..\lib\PocoDatamtd.lib @@ -218,9 +220,9 @@ true true true - + Level3 - + Default @@ -233,18 +235,19 @@ .\include;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true - true + false EnableFastChecks MultiThreadedDebugDLL true true true true - + ..\lib\PocoDatamdd.pdb Level3 ProgramDatabase Default + true ..\lib\PocoDatamdd.lib @@ -265,10 +268,10 @@ true true true - + ..\lib\PocoDatamd.pdb Level3 - + Default @@ -365,6 +368,6 @@ - - + + diff --git a/Data/Data_x64_vs120.vcxproj b/Data/Data_x64_vs120.vcxproj index 75d41a25b..256bf3644 100644 --- a/Data/Data_x64_vs120.vcxproj +++ b/Data/Data_x64_vs120.vcxproj @@ -1,4 +1,4 @@ - + @@ -32,7 +32,7 @@ Data Win32Proj - + StaticLibrary MultiByte @@ -63,27 +63,27 @@ MultiByte v120 - - + + - + - + - + - + - + - + - + <_ProjectFileVersion>12.0.30501.0 PocoData64d @@ -125,18 +125,19 @@ .\include;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) true - true + false EnableFastChecks MultiThreadedDebugDLL true true true true - + Level3 ProgramDatabase Default /bigobj %(AdditionalOptions) + true ..\bin64\PocoData64d.dll @@ -164,11 +165,12 @@ true true true - + Level3 - + Default /bigobj %(AdditionalOptions) + true ..\bin64\PocoData64.dll @@ -188,19 +190,20 @@ .\include;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true - true + false EnableFastChecks MultiThreadedDebug true true true true - + ..\lib64\PocoDatamtd.pdb Level3 ProgramDatabase Default /bigobj %(AdditionalOptions) + true ..\lib64\PocoDatamtd.lib @@ -221,11 +224,12 @@ true true true - + Level3 - + Default /bigobj %(AdditionalOptions) + true ..\lib64\PocoDatamt.lib @@ -237,19 +241,20 @@ .\include;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true - true + false EnableFastChecks MultiThreadedDebugDLL true true true true - + ..\lib64\PocoDatamdd.pdb Level3 ProgramDatabase Default /bigobj %(AdditionalOptions) + true ..\lib64\PocoDatamdd.lib @@ -270,11 +275,12 @@ true true true - + Level3 - + Default /bigobj %(AdditionalOptions) + true ..\lib64\PocoDatamd.lib @@ -370,6 +376,6 @@ - - + + diff --git a/Data/MySQL/include/Poco/Data/MySQL/Binder.h b/Data/MySQL/include/Poco/Data/MySQL/Binder.h index 6f6374acd..5c1c15752 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/Binder.h +++ b/Data/MySQL/include/Poco/Data/MySQL/Binder.h @@ -42,71 +42,71 @@ public: virtual ~Binder(); /// Destroys the Binder. - virtual void bind(std::size_t pos, const Poco::Int8& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::Int8& val, Direction dir, const WhenNullCb& nullCb); /// Binds an Int8. - virtual void bind(std::size_t pos, const Poco::UInt8& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::UInt8& val, Direction dir, const WhenNullCb& nullCb); /// Binds an UInt8. - virtual void bind(std::size_t pos, const Poco::Int16& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::Int16& val, Direction dir, const WhenNullCb& nullCb); /// Binds an Int16. - virtual void bind(std::size_t pos, const Poco::UInt16& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::UInt16& val, Direction dir, const WhenNullCb& nullCb); /// Binds an UInt16. - virtual void bind(std::size_t pos, const Poco::Int32& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::Int32& val, Direction dir, const WhenNullCb& nullCb); /// Binds an Int32. - virtual void bind(std::size_t pos, const Poco::UInt32& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::UInt32& val, Direction dir, const WhenNullCb& nullCb); /// Binds an UInt32. - virtual void bind(std::size_t pos, const Poco::Int64& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::Int64& val, Direction dir, const WhenNullCb& nullCb); /// Binds an Int64. - virtual void bind(std::size_t pos, const Poco::UInt64& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::UInt64& val, Direction dir, const WhenNullCb& nullCb); /// Binds an UInt64. #ifndef POCO_LONG_IS_64_BIT - virtual void bind(std::size_t pos, const long& val, Direction dir = PD_IN); + virtual void bind(std::size_t pos, const long& val, Direction dir, const WhenNullCb& nullCb); /// Binds a long. - virtual void bind(std::size_t pos, const unsigned long& val, Direction dir = PD_IN); + virtual void bind(std::size_t pos, const unsigned long& val, Direction dir, const WhenNullCb& nullCb); /// Binds an unsigned long. #endif // POCO_LONG_IS_64_BIT - virtual void bind(std::size_t pos, const bool& val, Direction dir); + virtual void bind(std::size_t pos, const bool& val, Direction dir, const WhenNullCb& nullCb); /// Binds a boolean. - virtual void bind(std::size_t pos, const float& val, Direction dir); + virtual void bind(std::size_t pos, const float& val, Direction dir, const WhenNullCb& nullCb); /// Binds a float. - virtual void bind(std::size_t pos, const double& val, Direction dir); + virtual void bind(std::size_t pos, const double& val, Direction dir, const WhenNullCb& nullCb); /// Binds a double. - virtual void bind(std::size_t pos, const char& val, Direction dir); + virtual void bind(std::size_t pos, const char& val, Direction dir, const WhenNullCb& nullCb); /// Binds a single character. - virtual void bind(std::size_t pos, const std::string& val, Direction dir); + virtual void bind(std::size_t pos, const std::string& val, Direction dir, const WhenNullCb& nullCb); /// Binds a string. - virtual void bind(std::size_t pos, const Poco::Data::BLOB& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::Data::BLOB& val, Direction dir, const WhenNullCb& nullCb); /// Binds a BLOB. - virtual void bind(std::size_t pos, const Poco::Data::CLOB& val, Direction dir); + virtual void bind(std::size_t pos, const Poco::Data::CLOB& val, Direction dir, const WhenNullCb& nullCb); /// Binds a CLOB. - virtual void bind(std::size_t pos, const DateTime& val, Direction dir); + virtual void bind(std::size_t pos, const DateTime& val, Direction dir, const WhenNullCb& nullCb); /// Binds a DateTime. - virtual void bind(std::size_t pos, const Date& val, Direction dir); + virtual void bind(std::size_t pos, const Date& val, Direction dir, const WhenNullCb& nullCb); /// Binds a Date. - virtual void bind(std::size_t pos, const Time& val, Direction dir); + virtual void bind(std::size_t pos, const Time& val, Direction dir, const WhenNullCb& nullCb); /// Binds a Time. - virtual void bind(std::size_t pos, const NullData& val, Direction dir); + virtual void bind(std::size_t pos, const NullData& val, Direction dir, const std::type_info& bindType); /// Binds a null. @@ -212,11 +212,11 @@ public: virtual void bind(std::size_t pos, const std::list