diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj b/ActiveRecord/ActiveRecord_vs170.vcxproj
index cc4b70f39..6637aae27 100644
--- a/ActiveRecord/ActiveRecord_vs170.vcxproj
+++ b/ActiveRecord/ActiveRecord_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoActiveRecordA64d
PocoActiveRecordmdd
PocoActiveRecordmtd
@@ -346,6 +346,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\binA64\PocoActiveRecordA64d.dll
@@ -379,6 +381,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\binA64\PocoActiveRecordA64.dll
@@ -410,6 +414,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\PocoActiveRecordmtd.lib
@@ -436,6 +442,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\PocoActiveRecordmt.lib
@@ -459,6 +467,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\PocoActiveRecordmdd.lib
@@ -485,6 +495,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\PocoActiveRecordmd.lib
@@ -508,6 +520,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin\PocoActiveRecordd.dll
@@ -541,6 +555,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin\PocoActiveRecord.dll
@@ -572,6 +588,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoActiveRecordmtd.lib
@@ -598,6 +616,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib\PocoActiveRecordmt.lib
@@ -621,6 +641,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoActiveRecordmdd.lib
@@ -647,6 +669,8 @@
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoActiveRecordmd.lib
@@ -670,6 +694,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin64\PocoActiveRecord64d.dll
@@ -703,6 +729,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin64\PocoActiveRecord64.dll
@@ -734,6 +762,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\PocoActiveRecordmtd.lib
@@ -760,6 +790,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\PocoActiveRecordmt.lib
@@ -783,6 +815,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\PocoActiveRecordmdd.lib
@@ -809,6 +843,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\PocoActiveRecordmd.lib
@@ -825,15 +861,23 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters
index 4d935e8dc..73cd1f48a 100644
--- a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters
+++ b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters
@@ -2,13 +2,13 @@
- {73c14701-9a05-4ff0-ad45-6a014639a69e}
+ {2abfaee0-49a0-4b66-9ad7-04a203cfc8cb}
- {163f196a-9202-45e4-80aa-20307db240a7}
+ {70b1a521-93e8-4228-ae59-baa5f0e57675}
- {15a3b1af-8e8c-4aff-bb0f-04c75fcc1610}
+ {6b444098-e516-439f-aaf8-266510aa8702}
diff --git a/ActiveRecord/Compiler/Compiler_vs170.vcxproj b/ActiveRecord/Compiler/Compiler_vs170.vcxproj
index eee21df90..6601a94d2 100644
--- a/ActiveRecord/Compiler/Compiler_vs170.vcxproj
+++ b/ActiveRecord/Compiler/Compiler_vs170.vcxproj
@@ -1,5 +1,5 @@
-
+
debug_shared
@@ -75,6 +75,7 @@
+ 17.0
Compiler
{84DD1CB5-4735-478A-B48E-5E4858F0E831}
Compiler
@@ -229,7 +230,7 @@
- <_ProjectFileVersion>16.0.33423.256
+ <_ProjectFileVersion>17.0.34322.80
poco-arcd
poco-arcd
poco-arcd
@@ -355,14 +356,17 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
- binA64\poco-arcd.exe
+ $(OutDir)$(TargetName).exe
..\..\libA64;%(AdditionalLibraryDirectories)
true
true
- binA64\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineARM64
@@ -386,7 +390,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
binA64\poco-arc.exe
@@ -414,7 +421,10 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -422,7 +432,7 @@
..\..\libA64;%(AdditionalLibraryDirectories)
true
true
- binA64\static_mt\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineARM64
@@ -446,7 +456,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -475,7 +488,10 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -483,7 +499,7 @@
..\..\libA64;%(AdditionalLibraryDirectories)
true
true
- binA64\static_md\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineARM64
@@ -507,11 +523,14 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
- binA64\static_md\poco-arc.exe
+ $(OutDir)$(TargetName).exe
..\..\libA64;%(AdditionalLibraryDirectories)
false
Console
@@ -536,14 +555,17 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
bin\poco-arcd.exe
..\..\lib;%(AdditionalLibraryDirectories)
true
true
- bin\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineX86
@@ -567,7 +589,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
bin\poco-arc.exe
@@ -595,7 +620,10 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -603,7 +631,7 @@
..\..\lib;%(AdditionalLibraryDirectories)
true
true
- bin\static_mt\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineX86
@@ -627,7 +655,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -656,7 +687,10 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -664,7 +698,7 @@
..\..\lib;%(AdditionalLibraryDirectories)
true
true
- bin\static_md\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineX86
@@ -688,7 +722,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -717,14 +754,17 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
bin64\poco-arcd.exe
..\..\lib64;%(AdditionalLibraryDirectories)
true
true
- bin64\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineX64
@@ -748,7 +788,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
bin64\poco-arc.exe
@@ -776,7 +819,10 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -784,7 +830,7 @@
..\..\lib64;%(AdditionalLibraryDirectories)
true
true
- bin64\static_mt\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineX64
@@ -808,7 +854,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -837,7 +886,10 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -845,7 +897,7 @@
..\..\lib64;%(AdditionalLibraryDirectories)
true
true
- bin64\static_md\poco-arcd.pdb
+ $(OutDir)$(TargetName).pdb
Console
MachineX64
@@ -869,7 +921,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -885,18 +940,28 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters
index 26f02379a..bda25bf21 100644
--- a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters
+++ b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {8696c7e6-f237-4b80-85b6-deff68bb7313}
+ {7f2913e1-102b-4ce6-a4b2-f99c8e3a38cd}
- {809f78f0-73d1-44df-992c-7aa5a1b3392b}
+ {9edf2033-52b6-4c16-a062-2b35e3cefb3c}
diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj
index f7df61046..7fae30584 100644
--- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj
+++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
TestSuited
TestSuited
TestSuited
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies)
@@ -910,18 +946,28 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters
index 7b9a51f7d..395638527 100644
--- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters
+++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters
@@ -2,16 +2,16 @@
- {441842f8-5906-4eba-8622-ce2adb220b2c}
+ {40b247c9-e15e-4d60-abc1-cf9c1cb2f66e}
- {d9408da8-d459-41c9-a781-65c0f5434c36}
+ {1a029e91-d286-42b9-8a58-c4a09641a8ae}
- {b89d1d90-8f75-4b8e-a5f5-70f76b1f6831}
+ {73651c18-d9ec-4a46-b4d9-3f28ae384bb3}
- {7f27626c-1bc5-4720-8115-2e140a2110f3}
+ {8382d412-0a64-4d8c-ad1e-befe17f70b65}
diff --git a/CppParser/CppParser_vs170.vcxproj b/CppParser/CppParser_vs170.vcxproj
index 9dfabac9b..398da6b04 100644
--- a/CppParser/CppParser_vs170.vcxproj
+++ b/CppParser/CppParser_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.32505.173
+ <_ProjectFileVersion>17.0.34322.80
PocoCppParserA64d
PocoCppParsermdd
PocoCppParsermtd
@@ -344,13 +344,16 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\binA64\PocoCppParserA64d.dll
true
true
- ..\binA64\PocoCppParserA64d.pdb
+ $(OutDir)$(TargetName).pdb
..\libA64;%(AdditionalLibraryDirectories)
Console
..\libA64\PocoCppParserd.lib
@@ -376,7 +379,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\binA64\PocoCppParserA64.dll
@@ -403,11 +409,13 @@
true
true
- ..\libA64\PocoCppParsermtd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\PocoCppParsermtd.lib
@@ -432,7 +440,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\PocoCppParsermt.lib
@@ -451,11 +462,13 @@
true
true
- ..\libA64\PocoCppParsermdd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\PocoCppParsermdd.lib
@@ -480,7 +493,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\PocoCppParsermd.lib
@@ -502,13 +518,16 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin\PocoCppParserd.dll
true
true
- ..\bin\PocoCppParserd.pdb
+ $(OutDir)$(TargetName).pdb
..\lib;%(AdditionalLibraryDirectories)
Console
..\lib\PocoCppParserd.lib
@@ -534,7 +553,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin\PocoCppParser.dll
@@ -561,11 +583,13 @@
true
true
- ..\lib\PocoCppParsermtd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoCppParsermtd.lib
@@ -590,7 +614,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib\PocoCppParsermt.lib
@@ -609,11 +636,13 @@
true
true
- ..\lib\PocoCppParsermdd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoCppParsermdd.lib
@@ -635,11 +664,13 @@
true
true
- ..\lib\PocoCppParsermd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoCppParsermd.lib
@@ -661,13 +692,16 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin64\PocoCppParser64d.dll
true
true
- ..\bin64\PocoCppParser64d.pdb
+ $(OutDir)$(TargetName).pdb
..\lib64;%(AdditionalLibraryDirectories)
Console
..\lib64\PocoCppParserd.lib
@@ -693,7 +727,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin64\PocoCppParser64.dll
@@ -720,11 +757,13 @@
true
true
- ..\lib64\PocoCppParsermtd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\PocoCppParsermtd.lib
@@ -749,7 +788,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\PocoCppParsermt.lib
@@ -768,11 +810,13 @@
true
true
- ..\lib64\PocoCppParsermdd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\PocoCppParsermdd.lib
@@ -797,7 +841,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\PocoCppParsermd.lib
@@ -826,54 +873,88 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/CppParser/CppParser_vs170.vcxproj.filters b/CppParser/CppParser_vs170.vcxproj.filters
index 81ba36469..cd9562122 100644
--- a/CppParser/CppParser_vs170.vcxproj.filters
+++ b/CppParser/CppParser_vs170.vcxproj.filters
@@ -2,31 +2,31 @@
- {803680d7-8697-4833-ac76-c0b035a48327}
+ {22a4c008-4a23-452a-a12a-0f6595ae1200}
- {6a32a7ae-3ba1-4d1b-a430-369514733719}
+ {2e3628cf-e59b-487e-97d3-46b28b5da8bb}
- {d26b3bc1-6ae7-43a8-b70a-7b92124b85ba}
+ {0ecc68a2-22c2-49af-a1fa-5a79c770e52c}
- {d733f192-ef00-4438-9249-ed2f61cda759}
+ {975cd316-19e5-4786-aef8-112ead31879b}
- {835f5859-0043-4810-b49f-569906e74133}
+ {7f74c210-2a9e-45b7-9fb1-748934d57b22}
- {d2110c01-94b4-49f3-af2c-e902c90a3b01}
+ {f605c7cb-1238-4ceb-a104-d0d0e63dd7b3}
- {f2afc2af-bcb9-4800-8ec3-7c4cdd55f76c}
+ {315aef06-cd6e-4d01-8d73-5e1dbff488fd}
- {ceac8a5a-7b87-4cad-8be7-1578e4516e01}
+ {f5c52f93-e8ca-4de7-b0ce-c7fb7a0ad50f}
- {b152b378-58a8-4c41-8bcf-f6d1a1a247b9}
+ {2bf7e8a4-f378-436f-b321-4b7ec8b9fe1d}
diff --git a/CppUnit/CppUnit_vs170.vcxproj b/CppUnit/CppUnit_vs170.vcxproj
index d135a2314..ac2aa93eb 100644
--- a/CppUnit/CppUnit_vs170.vcxproj
+++ b/CppUnit/CppUnit_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
CppUnitA64d
CppUnitmdd
CppUnitmtd
@@ -346,6 +346,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\binA64\CppUnitA64d.dll
@@ -379,6 +381,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\binA64\CppUnitA64.dll
@@ -410,6 +414,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\CppUnitmtd.lib
@@ -436,6 +442,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\CppUnitmt.lib
@@ -459,6 +467,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\CppUnitmdd.lib
@@ -485,6 +495,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\CppUnitmd.lib
@@ -508,6 +520,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin\CppUnitd.dll
@@ -541,6 +555,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin\CppUnit.dll
@@ -572,6 +588,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\CppUnitmtd.lib
@@ -598,6 +616,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib\CppUnitmt.lib
@@ -621,6 +641,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\CppUnitmdd.lib
@@ -647,6 +669,8 @@
Default
true
+ stdcpp17
+ stdc11
..\lib\CppUnitmd.lib
@@ -670,6 +694,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin64\CppUnit64d.dll
@@ -703,6 +729,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\bin64\CppUnit64.dll
@@ -734,6 +762,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\CppUnitmtd.lib
@@ -760,6 +790,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\CppUnitmt.lib
@@ -783,6 +815,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\CppUnitmdd.lib
@@ -809,6 +843,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\CppUnitmd.lib
@@ -817,27 +853,43 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/CppUnit/CppUnit_vs170.vcxproj.filters b/CppUnit/CppUnit_vs170.vcxproj.filters
index 03c16c4ec..f6e5b32f1 100644
--- a/CppUnit/CppUnit_vs170.vcxproj.filters
+++ b/CppUnit/CppUnit_vs170.vcxproj.filters
@@ -2,11 +2,11 @@
- {84e2f454-350e-4e2b-8bfd-f3cbbb62f23c}
+ {c81826ae-391d-40d2-ad57-7d8ed59ba862}
cpp;c;cxx;rc;def;r;odl;idl;hpj;bat
- {e32858e2-8161-4416-aa5b-e230b409f24b}
+ {6baa3333-3a56-45c4-a3a4-6774d2121132}
*.h
diff --git a/Crypto/Crypto_vs170.vcxproj b/Crypto/Crypto_vs170.vcxproj
index ca4d885d4..e84fc6059 100644
--- a/Crypto/Crypto_vs170.vcxproj
+++ b/Crypto/Crypto_vs170.vcxproj
@@ -1,5 +1,5 @@
-
+
debug_shared
@@ -75,6 +75,7 @@
+ 17.0
Crypto
{EEEE7259-32E9-4D56-B023-C733940AB2A0}
Crypto
@@ -229,7 +230,7 @@
- <_ProjectFileVersion>16.0.32629.160
+ <_ProjectFileVersion>17.0.34322.80
PocoCryptoA64d
PocoCryptomdd
PocoCryptomtd
@@ -343,14 +344,17 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
..\binA64\PocoCryptoA64d.dll
true
true
- ..\binA64\PocoCryptoA64d.pdb
+ $(OutDir)$(TargetName).pdb
..\libA64;%(AdditionalLibraryDirectories)
Console
..\libA64\PocoCryptod.lib
@@ -376,7 +380,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -404,11 +411,13 @@
true
true
- ..\libA64\PocoCryptomtd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\PocoCryptomtd.lib
@@ -433,7 +442,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\PocoCryptomt.lib
@@ -452,11 +464,13 @@
true
true
- ..\libA64\PocoCryptomdd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\libA64\PocoCryptomdd.lib
@@ -481,7 +495,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\libA64\PocoCryptomd.lib
@@ -503,14 +520,17 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
..\bin\PocoCryptod.dll
true
true
- ..\bin\PocoCryptod.pdb
+ $(OutDir)$(TargetName).pdb
..\lib;%(AdditionalLibraryDirectories)
Console
..\lib\PocoCryptod.lib
@@ -536,7 +556,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -564,11 +587,13 @@
true
true
- ..\lib\PocoCryptomtd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoCryptomtd.lib
@@ -593,7 +618,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib\PocoCryptomt.lib
@@ -612,11 +640,13 @@
true
true
- ..\lib\PocoCryptomdd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib\PocoCryptomdd.lib
@@ -638,11 +668,13 @@
true
true
- ..\lib\PocoCryptomd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
Default
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies)
@@ -665,14 +697,17 @@
Level3
ProgramDatabase
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
..\bin64\PocoCrypto64d.dll
true
true
- ..\bin64\PocoCrypto64d.pdb
+ $(OutDir)$(TargetName).pdb
..\lib64;%(AdditionalLibraryDirectories)
Console
..\lib64\PocoCryptod.lib
@@ -698,7 +733,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -726,11 +764,13 @@
true
true
- ..\lib64\PocoCryptomtd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\PocoCryptomtd.lib
@@ -755,7 +795,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\PocoCryptomt.lib
@@ -774,11 +817,13 @@
true
true
- ..\lib64\PocoCryptomdd.pdb
+ $(OutDir)$(TargetName).pdb
Level3
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\lib64\PocoCryptomdd.lib
@@ -803,7 +848,10 @@
Level3
Default
+ $(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\lib64\PocoCryptomd.lib
@@ -839,75 +887,123 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Crypto/Crypto_vs170.vcxproj.filters b/Crypto/Crypto_vs170.vcxproj.filters
index 151ae5735..8dd164639 100644
--- a/Crypto/Crypto_vs170.vcxproj.filters
+++ b/Crypto/Crypto_vs170.vcxproj.filters
@@ -2,58 +2,58 @@
- {956bb6d7-1946-4d8e-a988-6f840553f433}
+ {e4c49a27-04d0-4ddc-8795-f17c70e2b7e7}
- {ac7c9562-5031-4fd3-bf00-58ee2afd58f1}
+ {c152364e-4636-4536-9d1f-ceb02dffa264}
- {bc2c461a-a460-43c5-9dda-e1ac05590b4a}
+ {9510091e-4f8d-499b-92a6-be553d45316b}
- {6f66dac0-646c-425e-98f9-0443b14bea15}
+ {fbfd0876-4670-4def-a529-7cf8923c2961}
- {3cd7a042-61b8-4430-88a3-96de91011504}
+ {5b21093d-d3b4-4291-b47f-ece9f024ddd8}
- {5480a739-70e8-4989-9388-858bc73745bf}
+ {d9423ed6-d9b6-4ecb-b6b8-9322d6c3f995}
- {10a1798e-fd19-4a4b-a4fa-078316b35b4a}
+ {129cbfa3-8e47-4cdd-a614-6df3e4fb0408}
- {948b072b-d50b-4e17-bed4-3bae8345be51}
+ {572de956-2613-47de-9629-80a415067e58}
- {984e69ae-d972-430f-84ad-885ce648930e}
+ {4b330ecf-7831-4b3f-8e7b-f3b028ba97b0}
- {c4a637d7-9aad-4d1b-b9ce-b00a3a9bf47c}
+ {b213e21e-b970-4e41-897f-af8f064c1926}
- {ef263eac-80d3-4c1a-abee-af439456b293}
+ {912e16ae-3f1e-4087-8ada-0b1a7d45f6c4}
- {2af1dbe7-277e-4ab3-b8ad-255c4cf4f3ac}
+ {dddf49b9-d285-46ad-9aed-0bd977e67caf}
- {8d350d20-818d-4e10-8a87-6df008441927}
+ {1eb34481-278c-49c3-a4e8-6e6733e0a06d}
- {a6bd57e4-6d39-4a42-aa3d-4b1ad9e262fa}
+ {b181d31d-7aa8-4436-9353-a420cca61fbf}
- {1c3b1b7c-2a2b-4eba-bc22-cedfdcc12b48}
+ {12de2d74-9477-43ae-b3d8-4a94001b6eb1}
- {a692dced-8e66-4531-9567-6b57a3f9d89f}
+ {c0df7136-ad12-4fdc-bda1-73a46c627a4c}
- {d6b09c46-8d74-4ab2-99b0-31923c880bed}
+ {b6cdd172-33a7-448b-85e5-c9982b77c53e}
- {b0414365-c964-4c45-a80e-8539c5fe0b5b}
+ {384218a8-372e-47a7-b7f2-2ce7f7be1860}
diff --git a/Data/Data.progen b/Data/Data.progen
index 1ea8c123d..353b1af13 100644
--- a/Data/Data.progen
+++ b/Data/Data.progen
@@ -16,6 +16,6 @@ vc.project.compiler.defines =
vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS
vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared}
vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared}
-vc.project.compiler.additionalOptions = /bigobj /std:c++17 /Zc:__cplusplus
+vc.project.compiler.additionalOptions = /bigobj /Zc:__cplusplus
vc.solution.create = true
vc.solution.include = testsuite\\TestSuite,testsuite\\DataTest\\DataTest
diff --git a/Data/Data_NO_SQL_PARSER.progen b/Data/Data_NO_SQL_PARSER.progen
index 4b7376b7b..2359d3907 100644
--- a/Data/Data_NO_SQL_PARSER.progen
+++ b/Data/Data_NO_SQL_PARSER.progen
@@ -12,6 +12,6 @@ vc.project.compiler.defines =
vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS
vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared}
vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared}
-vc.project.compiler.additionalOptions = /bigobj /std:c++17 /Zc:__cplusplus
+vc.project.compiler.additionalOptions = /bigobj /Zc:__cplusplus
vc.solution.create = true
vc.solution.include = testsuite\\TestSuite
diff --git a/Data/Data_vs170.vcxproj b/Data/Data_vs170.vcxproj
index b7db546f3..9f5a2d888 100644
--- a/Data/Data_vs170.vcxproj
+++ b/Data/Data_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoDataA64d
PocoDatamdd
PocoDatamtd
@@ -345,8 +345,10 @@
ProgramDatabase
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\binA64\PocoDataA64d.dll
@@ -379,8 +381,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\binA64\PocoDataA64.dll
@@ -411,8 +415,10 @@
Level3
ProgramDatabase
Default
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\libA64\PocoDatamtd.lib
@@ -438,8 +444,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\libA64\PocoDatamt.lib
@@ -462,8 +470,10 @@
Level3
ProgramDatabase
Default
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\libA64\PocoDatamdd.lib
@@ -489,8 +499,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\libA64\PocoDatamd.lib
@@ -513,8 +525,10 @@
ProgramDatabase
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\bin\PocoDatad.dll
@@ -547,8 +561,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\bin\PocoData.dll
@@ -579,8 +595,10 @@
Level3
ProgramDatabase
Default
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib\PocoDatamtd.lib
@@ -606,8 +624,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib\PocoDatamt.lib
@@ -630,8 +650,10 @@
Level3
ProgramDatabase
Default
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib\PocoDatamdd.lib
@@ -657,8 +679,10 @@
Level3
Default
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib\PocoDatamd.lib
@@ -681,8 +705,10 @@
ProgramDatabase
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\bin64\PocoData64d.dll
@@ -715,8 +741,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\bin64\PocoData64.dll
@@ -747,8 +775,10 @@
Level3
ProgramDatabase
Default
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib64\PocoDatamtd.lib
@@ -774,8 +804,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib64\PocoDatamt.lib
@@ -798,8 +830,10 @@
Level3
ProgramDatabase
Default
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib64\PocoDatamdd.lib
@@ -825,8 +859,10 @@
Default
$(OutDir)$(TargetName).pdb
- /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions)
+ /bigobj /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\lib64\PocoDatamd.lib
@@ -914,144 +950,238 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Data/Data_vs170.vcxproj.filters b/Data/Data_vs170.vcxproj.filters
index 200b28d92..274357ea5 100644
--- a/Data/Data_vs170.vcxproj.filters
+++ b/Data/Data_vs170.vcxproj.filters
@@ -2,67 +2,67 @@
- {17dee3c5-eff8-4413-8538-35cde2b4b148}
+ {ed293173-38e4-456c-8b1b-fbb4edb534a2}
- {b47de74d-a006-494a-92ca-14bb740b6a8f}
+ {09512048-b662-4412-9d66-9278f5127b64}
- {2fae20d2-553e-4d22-a054-7bdcaf5cfa18}
+ {e5a0ae46-4dcb-44ee-ad87-6c29296fdb75}
- {8e430176-5758-4f18-a0a1-a2e47cd5d20a}
+ {3ab0b097-7c41-423d-a520-9955c13afd07}
- {f46d9d0c-aaad-4c18-b335-aa902649086a}
+ {fb8ac504-99e9-4c9f-acf9-cd7e199ccbb8}
- {a2f2316a-c2ec-45b6-bfb5-9c7ea4bf8406}
+ {96d47a24-bbc7-4503-98f1-722cb7e6c525}
- {396b1821-ed93-4c83-884c-d60497a66f11}
+ {722167c1-e2c8-4893-bf49-f06a56e4475a}
- {77bc6a77-c249-4be3-80b3-86841c7b6297}
+ {0fd0e46c-2c11-4305-bf67-4e39819f3600}
- {c74693c2-b89b-4615-ba48-44ef418f9ab6}
+ {52fb64cd-2a53-461c-8056-ee3178aac103}
- {6fadb32c-ee06-4f9e-937e-28203e2504d1}
+ {7ba52d24-1fb2-465f-8937-71c5f1c2aeef}
- {3c5d1163-2067-4363-abf6-dc040e3613cc}
+ {8d74d8c7-dae7-4a18-858f-09bcf7f09f1b}
- {15321502-9c36-49f6-a094-90a9de888c41}
+ {8f9442dc-d276-42ed-829a-3112f876419b}
- {4f383c22-b278-40e9-bb9a-b25fd0db10a3}
+ {57e26b75-95c1-4d32-8239-7a303d573048}
- {f037c038-fa66-4ea9-ab1e-187aac6f52ce}
+ {f7ab1f90-c32d-4108-9cba-3a380c12af48}
- {fda6c009-20d7-4eb4-a9be-fbb1d578d166}
+ {70937b86-7f9e-42eb-a1cb-532959b076b3}
- {5e4a847f-8c8d-40f0-aa79-03b211bd5ac9}
+ {426b95e7-0f6b-4a2e-8227-5d1f2a96c38b}
- {dd5133dc-82db-4f2a-92f6-91dba81a222b}
+ {59e3d7d8-f310-4e86-a84e-9e5648e238f8}
- {8d7c5808-50f5-4790-b35c-77350ea2b16c}
+ {8b87b125-d1e5-4037-85fa-2edd7d77e940}
- {6fe708ec-ec55-4aeb-9be3-2b1aa30f3cb1}
+ {307ff9fb-35fa-4c93-a388-e4072672006d}
- {c8f1ad0b-aede-43b8-9b01-ad4cbf24f45b}
+ {7137d8b1-eeb5-4fee-b080-d7c87dc42a43}
- {6845af31-0048-47ba-96f7-48baed099606}
+ {55caa527-40a5-4ee1-a9f2-58b13550166f}
diff --git a/Data/MySQL/MySQL_vs170.vcxproj b/Data/MySQL/MySQL_vs170.vcxproj
index abb5d2eb7..146c91962 100644
--- a/Data/MySQL/MySQL_vs170.vcxproj
+++ b/Data/MySQL/MySQL_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoDataMySQLA64d
PocoDataMySQLmdd
PocoDataMySQLmtd
@@ -346,6 +346,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\binA64\PocoDataMySQLA64d.dll
@@ -379,6 +381,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\binA64\PocoDataMySQLA64.dll
@@ -410,6 +414,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataMySQLmtd.lib
@@ -436,6 +442,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataMySQLmt.lib
@@ -459,6 +467,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataMySQLmdd.lib
@@ -485,6 +495,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataMySQLmd.lib
@@ -508,6 +520,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin\PocoDataMySQLd.dll
@@ -541,6 +555,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin\PocoDataMySQL.dll
@@ -572,6 +588,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataMySQLmtd.lib
@@ -598,6 +616,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataMySQLmt.lib
@@ -621,6 +641,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataMySQLmdd.lib
@@ -647,6 +669,8 @@
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataMySQLmd.lib
@@ -670,6 +694,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin64\PocoDataMySQL64d.dll
@@ -703,6 +729,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin64\PocoDataMySQL64.dll
@@ -734,6 +762,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataMySQLmtd.lib
@@ -760,6 +790,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataMySQLmt.lib
@@ -783,6 +815,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataMySQLmdd.lib
@@ -809,6 +843,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataMySQLmd.lib
@@ -817,33 +853,53 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Data/ODBC/ODBC_vs170.vcxproj b/Data/ODBC/ODBC_vs170.vcxproj
index 267f337ab..45ad082c3 100644
--- a/Data/ODBC/ODBC_vs170.vcxproj
+++ b/Data/ODBC/ODBC_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoDataODBCA64d
PocoDataODBCmdd
PocoDataODBCmtd
@@ -346,6 +346,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -380,6 +382,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -412,6 +416,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataODBCmtd.lib
@@ -438,6 +444,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataODBCmt.lib
@@ -461,6 +469,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataODBCmdd.lib
@@ -487,6 +497,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataODBCmd.lib
@@ -510,6 +522,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -544,6 +558,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -576,6 +592,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataODBCmtd.lib
@@ -602,6 +620,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataODBCmt.lib
@@ -625,6 +645,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataODBCmdd.lib
@@ -651,6 +673,8 @@
Default
true
+ stdcpp17
+ stdc11
odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -675,6 +699,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -709,6 +735,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
@@ -741,6 +769,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataODBCmtd.lib
@@ -767,6 +797,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataODBCmt.lib
@@ -790,6 +822,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataODBCmdd.lib
@@ -816,6 +850,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataODBCmd.lib
@@ -846,42 +882,68 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
@@ -903,6 +965,8 @@
true
true
true
+ stdcpp17
+ stdc11
true
@@ -924,9 +988,13 @@
true
true
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Data/ODBC/ODBC_vs170.vcxproj.filters b/Data/ODBC/ODBC_vs170.vcxproj.filters
index ca60a96bd..2a6a08180 100644
--- a/Data/ODBC/ODBC_vs170.vcxproj.filters
+++ b/Data/ODBC/ODBC_vs170.vcxproj.filters
@@ -2,13 +2,13 @@
- {f34e7de5-7ef8-4dd2-b62f-7a06b6a35a67}
+ {e7e58a10-6d53-4be9-a342-62628c6feb5f}
- {65266e55-5683-4419-9976-d381eb3a37b1}
+ {efd7c933-a42d-4f50-9f6a-c8444bf44c93}
- {0217b02a-6b9b-47ee-963c-837798f77fe9}
+ {398266a3-c6d5-4987-8910-a35da55d401e}
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Binder.h b/Data/ODBC/include/Poco/Data/ODBC/Binder.h
index 0b34295fc..fb03be086 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Binder.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Binder.h
@@ -394,6 +394,7 @@ private:
{
SQLINTEGER colSize = 0;
SQLSMALLINT decDigits = 0;
+
getColSizeAndPrecision(pos, cDataType, colSize, decDigits);
_lengthIndicator.push_back(0);
diff --git a/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h b/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h
index a753fed8f..b07d450a7 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h
@@ -20,6 +20,7 @@
#include "Poco/Data/ODBC/ODBC.h"
#include "Poco/Data/ODBC/EnvironmentHandle.h"
+#include "Poco/Data/ODBC/Error.h"
#ifdef POCO_OS_FAMILY_WINDOWS
#include
#endif
@@ -33,16 +34,23 @@ namespace ODBC {
class SessionImpl;
class ODBC_API ConnectionHandle
-/// ODBC connection handle class
+ /// ODBC connection handle class
{
public:
- ConnectionHandle(const std::string& connectString = "", SQLULEN timeout = 5);
+ static const std::string UNSUPPORTED_SQLSTATE;
+ static const std::string GEN_ERR_SQLSTATE;
+ static const std::string CANT_SET_ATTR_SQLSTATE;
+
+ ConnectionHandle(const std::string& connectString = "", SQLULEN loginTimeout = 0, SQLULEN timeout = 0);
/// Creates the ConnectionHandle.
+ ///
+ /// NOTE: some drivers/DBMS do not distinguish between login and connection timeouts,
+ /// and setting one timeout overwrites the other.
~ConnectionHandle();
/// Creates the ConnectionHandle.
- bool connect(const std::string& connectString = "", SQLULEN timeout = 5);
+ bool connect(const std::string& connectString = "", SQLULEN loginTimeout = 0, SQLULEN timeout = 0);
/// Connects the handle to the database.
bool disconnect();
@@ -51,12 +59,20 @@ public:
bool isConnected() const;
/// Returns true if connected.
- void setTimeout(SQLULEN timeout);
+ void setTimeout(int timeout);
/// Sets the connection timeout in seconds.
int getTimeout() const;
/// Returns the connection timeout in seconds.
+ void setLoginTimeout(SQLULEN timeout);
+ /// Sets the login timeout in seconds.
+ /// Must be called before the connection attempt.
+
+ int getLoginTimeout() const;
+ /// Returns the login timeout in seconds.
+ /// Must be called before the connection attempt.
+
const SQLHDBC& handle() const;
/// Returns const reference to handle;
@@ -83,6 +99,26 @@ private:
void free();
/// Frees the connection handle.
+ void setTimeoutImpl(SQLULEN timeout, SQLINTEGER attribute);
+ /// Sets the timeout for the attribute.
+
+ int getTimeoutImpl(SQLINTEGER attribute) const;
+ /// Returns the timeout for the attribute.
+
+ void setTimeouts(SQLULEN loginTimeout, SQLULEN timeout);
+
+ bool isUnsupported(const ConnectionError& e) const;
+ /// Returns true if SQLSTATE is "HYC000"
+ /// (Optional feature not implemented)
+
+ bool isGenError(const ConnectionError& e) const;
+ /// Returns true if SQLSTATE is "HY000"
+ /// (General error)
+
+ bool cantSetAttr(const ConnectionError& e) const;
+ /// Returns true if SQLSTATE is "HY011"
+ /// (Can't set attribute)
+
ConnectionHandle(const ConnectionHandle&);
const ConnectionHandle& operator=(const ConnectionHandle&);
@@ -136,6 +172,30 @@ inline SQLHDBC& ConnectionHandle::handle()
}
+inline void ConnectionHandle::setTimeout(int timeout)
+{
+ setTimeoutImpl(static_cast(timeout), SQL_ATTR_CONNECTION_TIMEOUT);
+}
+
+
+inline int ConnectionHandle::getTimeout() const
+{
+ return getTimeoutImpl(SQL_ATTR_CONNECTION_TIMEOUT);
+}
+
+
+inline void ConnectionHandle::setLoginTimeout(SQLULEN timeout)
+{
+ setTimeoutImpl(timeout, SQL_ATTR_LOGIN_TIMEOUT);
+}
+
+
+inline int ConnectionHandle::getLoginTimeout() const
+{
+ return getTimeoutImpl(SQL_ATTR_LOGIN_TIMEOUT);
+}
+
+
} } } // namespace Poco::Data::ODBC
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Preparator.h b/Data/ODBC/include/Poco/Data/ODBC/Preparator.h
index aa6ebc769..6b351f8fb 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Preparator.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Preparator.h
@@ -25,6 +25,7 @@
#include "Poco/Data/AbstractPreparator.h"
#include "Poco/Data/Constants.h"
#include "Poco/Data/LOB.h"
+#include "Poco/Types.h"
#include "Poco/Any.h"
#include "Poco/DynamicAny.h"
#include "Poco/DateTime.h"
@@ -895,7 +896,7 @@ inline void Preparator::prepare(std::size_t pos, const long&)
inline void Preparator::prepare(std::size_t pos, const unsigned long&)
{
- prepareFixedSize(pos, SQL_C_SLONG);
+ prepareFixedSize(pos, SQL_C_ULONG);
}
diff --git a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
index 0e3e9479f..06b2f8126 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
@@ -161,6 +161,14 @@ public:
int maxStatementLength() const;
/// Returns maximum length of SQL statement allowed by driver.
+ void setLoginTimeout(const std::string&, const Poco::Any& value);
+ /// Sets the timeout (in seconds) for the session login.
+ /// Value must be of type (unsigned) int.
+ /// It must be set prior to logging in.
+
+ Poco::Any getLoginTimeout(const std::string&) const;
+ /// Returns the timeout (in seconds) for the session login.
+
void setQueryTimeout(const std::string&, const Poco::Any& value);
/// Sets the timeout (in seconds) for queries.
/// Value must be of type int.
@@ -312,6 +320,12 @@ inline bool SessionImpl::isTransactionIsolation(Poco::UInt32 ti) const
}
+inline Poco::Any SessionImpl::getLoginTimeout(const std::string&) const
+{
+ return _db.getLoginTimeout();
+}
+
+
inline void SessionImpl::setQueryTimeout(const std::string&, const Poco::Any& value)
{
_queryTimeout = Poco::AnyCast(value);
diff --git a/Data/ODBC/src/Binder.cpp b/Data/ODBC/src/Binder.cpp
index c3729af1c..36ed66961 100644
--- a/Data/ODBC/src/Binder.cpp
+++ b/Data/ODBC/src/Binder.cpp
@@ -510,6 +510,7 @@ void Binder::getColSizeAndPrecision(std::size_t pos,
SQLSMALLINT& decDigits,
std::size_t actualSize)
{
+ SQLSMALLINT sqlDataType = Utility::sqlDataType(cDataType);
colSize = 0;
decDigits = 0;
@@ -522,6 +523,9 @@ void Binder::getColSizeAndPrecision(std::size_t pos,
bool foundPrec(false);
foundSize = _pTypeInfo->tryGetInfo(cDataType, "COLUMN_SIZE", tmp);
if (foundSize) colSize = tmp;
+ else foundSize = _pTypeInfo->tryGetInfo(sqlDataType, "COLUMN_SIZE", tmp);
+ if (foundSize) colSize = tmp;
+
if (actualSize > colSize)
{
throw LengthExceededException(Poco::format("Error binding column %z size=%z, max size=%ld)",
@@ -529,6 +533,8 @@ void Binder::getColSizeAndPrecision(std::size_t pos,
}
foundPrec = _pTypeInfo->tryGetInfo(cDataType, "MAXIMUM_SCALE", tmp);
if (foundPrec) decDigits = tmp;
+ else foundPrec = _pTypeInfo->tryGetInfo(sqlDataType, "MAXIMUM_SCALE", tmp);
+ if (foundPrec) decDigits = tmp;
if (foundSize && foundPrec)
return;
diff --git a/Data/ODBC/src/ConnectionHandle.cpp b/Data/ODBC/src/ConnectionHandle.cpp
index f66550c72..4d1ce7cbb 100644
--- a/Data/ODBC/src/ConnectionHandle.cpp
+++ b/Data/ODBC/src/ConnectionHandle.cpp
@@ -24,12 +24,18 @@ namespace Data {
namespace ODBC {
-ConnectionHandle::ConnectionHandle(const std::string& connectString, SQLULEN timeout): _pEnvironment(nullptr),
+const std::string ConnectionHandle::UNSUPPORTED_SQLSTATE = "HYC00";
+const std::string ConnectionHandle::GEN_ERR_SQLSTATE = "HY000";
+const std::string ConnectionHandle::CANT_SET_ATTR_SQLSTATE = "HY011";
+
+
+ConnectionHandle::ConnectionHandle(const std::string& connectString, SQLULEN loginTimeout, SQLULEN timeout):
+ _pEnvironment(nullptr),
_hdbc(SQL_NULL_HDBC),
_connectString(connectString)
{
alloc();
- setTimeout(timeout);
+ setTimeouts(loginTimeout, timeout);
}
@@ -76,7 +82,29 @@ void ConnectionHandle::free()
}
-bool ConnectionHandle::connect(const std::string& connectString, SQLULEN timeout)
+void ConnectionHandle::setTimeouts(SQLULEN loginTimeout, SQLULEN timeout)
+{
+ if (loginTimeout)
+ {
+ try
+ {
+ setLoginTimeout(loginTimeout);
+ }
+ catch(const NotSupportedException&) {}
+ }
+
+ if (timeout)
+ {
+ try
+ {
+ setTimeout(timeout);
+ }
+ catch(const NotSupportedException&) {}
+ }
+}
+
+
+bool ConnectionHandle::connect(const std::string& connectString, SQLULEN loginTimeout, SQLULEN timeout)
{
if (isConnected())
throw Poco::InvalidAccessException("ODBC: connection already established.");
@@ -91,6 +119,9 @@ bool ConnectionHandle::connect(const std::string& connectString, SQLULEN timeout
SQLSMALLINT result;
if (!_pEnvironment) alloc();
+
+ setTimeouts(loginTimeout, timeout);
+
if (Utility::isError(Poco::Data::ODBC::SQLDriverConnect(_hdbc
, NULL
,(SQLCHAR*) _connectString.c_str()
@@ -100,12 +131,28 @@ bool ConnectionHandle::connect(const std::string& connectString, SQLULEN timeout
, &result
, SQL_DRIVER_NOPROMPT)))
{
- disconnect();
ConnectionError err(_hdbc);
+ disconnect();
throw ConnectionFailedException(err.toString());
}
- return _hdbc != SQL_NULL_HDBC;;
+ try
+ {
+ // Setting timeouts before connection is valid by standard (as it makes sense for login timeout),
+ // but not all drivers comply, so we have to check and try again after succesful connection.
+ // Furthermore, it appears that Oracle has only one timeout, so it is not possible to have
+ // different login and connection timeouts. Last but not least, some ODBC drivers (eg. DataDirect
+ // for Oracle) flat out refuse to set login timeout and return error - that's why these calls
+ // are wrapped in try/catch and silently ignore errors.
+ if (getTimeout() != timeout)
+ setTimeout(timeout);
+ if (getLoginTimeout() != loginTimeout)
+ setLoginTimeout(loginTimeout);
+ }
+ catch(NotSupportedException&){}
+ catch(InvalidAccessException&){}
+
+ return _hdbc != SQL_NULL_HDBC;
}
@@ -120,38 +167,107 @@ bool ConnectionHandle::disconnect()
}
-void ConnectionHandle::setTimeout(SQLULEN timeout)
+void ConnectionHandle::setTimeoutImpl(SQLULEN timeout, SQLINTEGER attribute)
{
- if (Utility::isError(SQLSetConnectAttr(_hdbc, SQL_ATTR_LOGIN_TIMEOUT, (SQLPOINTER) timeout, 0)))
+ if (attribute != SQL_ATTR_LOGIN_TIMEOUT && attribute != SQL_ATTR_CONNECTION_TIMEOUT)
+ throw InvalidArgumentException(Poco::format("ODBC::ConnectionHandle::setTimeoutImpl(%d)", attribute));
+
+ if (Utility::isError(SQLSetConnectAttr(_hdbc, attribute, (SQLPOINTER) timeout, 0)))
{
ConnectionError e(_hdbc);
+ std::string name;
+ switch (attribute)
+ {
+ case SQL_ATTR_LOGIN_TIMEOUT:
+ name = "LOGIN"s;
+ break;
+ case SQL_ATTR_CONNECTION_TIMEOUT:
+ name = "CONNECTION"s;
+ break;
+ default:
+ break;
+ }
+
+ if (isUnsupported(e))
+ throw NotSupportedException(Poco::format("ConnectionHandle::setTimeoutImpl(%s)", name));
+ else if (isGenError(e) || cantSetAttr(e))
+ throw InvalidAccessException(Poco::format("ConnectionHandle::setTimeoutImpl(%s)", name));
+
throw ConnectionFailedException(e.toString());
}
}
-int ConnectionHandle::getTimeout() const
+int ConnectionHandle::getTimeoutImpl(SQLINTEGER attribute) const
{
- SQLULEN timeout = 0;
- if (Utility::isError(SQLGetConnectAttr(_hdbc, SQL_ATTR_LOGIN_TIMEOUT, &timeout, 0, 0)))
+ SQLUINTEGER timeout = 0;
+ if (Utility::isError(SQLGetConnectAttr(_hdbc, attribute, &timeout, sizeof(timeout), 0)))
{
ConnectionError e(_hdbc);
+ if (isUnsupported(e))
+ throw NotSupportedException("ConnectionHandle::getTimeoutImpl(%s)");
+
throw ConnectionFailedException(e.toString());
}
return static_cast(timeout);
}
+bool ConnectionHandle::isUnsupported(const ConnectionError& e) const
+{
+ const ConnectionDiagnostics& cd = e.diagnostics();
+ int diagRecs = cd.count();
+ for (int i = 0; i < diagRecs; ++i)
+ {
+ if (cd.sqlState(i) == UNSUPPORTED_SQLSTATE)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+bool ConnectionHandle::isGenError(const ConnectionError& e) const
+{
+ const ConnectionDiagnostics& cd = e.diagnostics();
+ int diagRecs = cd.count();
+ for (int i = 0; i < diagRecs; ++i)
+ {
+ if (cd.sqlState(i) == GEN_ERR_SQLSTATE)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+bool ConnectionHandle::cantSetAttr(const ConnectionError& e) const
+{
+ const ConnectionDiagnostics& cd = e.diagnostics();
+ int diagRecs = cd.count();
+ for (int i = 0; i < diagRecs; ++i)
+ {
+ if (cd.sqlState(i) == CANT_SET_ATTR_SQLSTATE)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
bool ConnectionHandle::isConnected() const
{
if (!*this) return false;
- SQLULEN value = 0;
+ SQLINTEGER value = -1;
if (Utility::isError(Poco::Data::ODBC::SQLGetConnectAttr(_hdbc,
SQL_ATTR_CONNECTION_DEAD,
&value,
- 0,
+ sizeof(value),
0))) return false;
return (SQL_CD_FALSE == value);
diff --git a/Data/ODBC/src/Extractor.cpp b/Data/ODBC/src/Extractor.cpp
index ccdac9339..e9393b7d0 100644
--- a/Data/ODBC/src/Extractor.cpp
+++ b/Data/ODBC/src/Extractor.cpp
@@ -721,7 +721,7 @@ bool Extractor::extract(std::size_t pos, std::string& val)
else
ret = extractBoundImpl(pos, result);
transcode(result, val);
-
+
}
return ret;
diff --git a/Data/ODBC/src/SessionImpl.cpp b/Data/ODBC/src/SessionImpl.cpp
index 563b9b6f2..dac7d082e 100644
--- a/Data/ODBC/src/SessionImpl.cpp
+++ b/Data/ODBC/src/SessionImpl.cpp
@@ -123,6 +123,10 @@ void SessionImpl::addFeatures()
&SessionImpl::setMaxFieldSize,
&SessionImpl::getMaxFieldSize);
+ addProperty("loginTimeout",
+ &SessionImpl::setLoginTimeout,
+ &SessionImpl::getLoginTimeout);
+
addProperty("queryTimeout",
&SessionImpl::setQueryTimeout,
&SessionImpl::getQueryTimeout);
@@ -153,9 +157,7 @@ void SessionImpl::open(const std::string& connect)
if (connectionString().empty())
throw InvalidArgumentException("SessionImpl::open(): Connection string empty");
- SQLULEN tout = static_cast(getLoginTimeout());
-
- if (_db.connect(connectionString(), tout))
+ if (_db.connect(connectionString()))
{
setProperty("handle", _db.handle());
@@ -245,26 +247,30 @@ inline Poco::Any SessionImpl::getCursorUse(const std::string&) const
void SessionImpl::setConnectionTimeout(std::size_t timeout)
{
- SQLUINTEGER value = static_cast(timeout);
-
- checkError(Poco::Data::ODBC::SQLSetConnectAttr(_db,
- SQL_ATTR_CONNECTION_TIMEOUT,
- &value,
- SQL_IS_UINTEGER), "Failed to set connection timeout.");
+ SQLULEN value = static_cast(timeout);
+ _db.setTimeout(value);
}
std::size_t SessionImpl::getConnectionTimeout() const
{
- SQLULEN value = 0;
+ return _db.getTimeout();
+}
- checkError(Poco::Data::ODBC::SQLGetConnectAttr(_db,
- SQL_ATTR_CONNECTION_TIMEOUT,
- &value,
- 0,
- 0), "Failed to get connection timeout.");
- return value;
+void SessionImpl::setLoginTimeout(const std::string&, const Poco::Any& value)
+{
+ int timeout = 0;
+ try
+ {
+ timeout = Poco::AnyCast(value);
+ }
+ catch(const Poco::BadCastException&)
+ {
+ timeout = Poco::AnyCast(value);
+ }
+
+ _db.setLoginTimeout(timeout);
}
@@ -352,8 +358,10 @@ bool SessionImpl::hasTransactionIsolation(Poco::UInt32 ti) const
{
if (isTransaction()) throw InvalidAccessException();
- bool retval = true;
Poco::UInt32 old = getTransactionIsolation();
+ if (old == ti) return true;
+
+ bool retval = true;
try { setTransactionIsolationImpl(ti); }
catch (Poco::Exception&) { retval = false; }
setTransactionIsolationImpl(old);
diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj
index 473b80173..e08e2efe2 100644
--- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj
+++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
TestSuited
TestSuited
TestSuited
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -922,36 +958,58 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters
index 8666a8bd7..d299a0b1f 100644
--- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters
+++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters
@@ -2,28 +2,28 @@
- {179a380b-3910-49b1-bd76-2fa7222a96cb}
+ {c7e9a1ea-73f4-4226-b310-b265201e0be9}
- {27ed4014-dc16-4c25-84cd-1598bcc2b8ab}
+ {2348173e-2e62-4809-99ea-676ebb4198c0}
- {44fb61ac-3639-400f-a868-2cfc81338e8d}
+ {8926ceae-a008-4b2d-accb-ff1e4f4a1b77}
- {68ef2164-2dbb-48f6-85d9-d22e20cebaf2}
+ {30658ecd-cf47-42ec-8568-5acc3a624a78}
- {36208f03-46c7-4ac6-9be6-c04374dfb886}
+ {5192786d-b801-40d6-a989-f7fdc825f525}
- {2a8314f2-90c2-4649-8e5e-1ea1ab61200b}
+ {4a23e42f-ef34-4ab0-b282-21cf3de054b9}
- {7d675381-7b81-43fd-882e-f2401eabdb9e}
+ {90adb98e-9140-4322-88ba-3ed19efe888c}
- {f178aec2-ceb4-4c7b-9d88-4cb2bdb516cc}
+ {099c216f-5416-41a0-b28d-fb3156debbcd}
diff --git a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp
index 777895244..0acdf8e4d 100644
--- a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp
@@ -164,7 +164,7 @@ void ODBCMySQLTest::testNull()
recreateNullsTable("NOT NULL");
_pSession->setFeature("autoBind", bindValue(i));
_pSession->setFeature("autoExtract", bindValue(i+1));
- _pExecutor->notNulls("HY000");
+ _pExecutor->notNulls({"HY000"});
i += 2;
}
diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
index 722d46c50..4a907915b 100644
--- a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
@@ -41,7 +41,19 @@ using Poco::DynamicAny;
using Poco::DateTime;
-#define ORACLE_ODBC_DRIVER "Oracle 21 ODBC driver"
+//#define EASYSOFT_ODBC
+//#define DATADIRECT_ODBC
+#define DEVART_ODBC
+
+#ifdef EASYSOFT_ODBC
+# define ORACLE_ODBC_DRIVER "ORACLE"
+#elif defined(DATADIRECT_ODBC)
+# define ORACLE_ODBC_DRIVER "Oracle Wire Protocol"
+#elif defined(DEVART_ODBC)
+# define ORACLE_ODBC_DRIVER "Devart ODBC Driver for Oracle"
+#else
+# define ORACLE_ODBC_DRIVER "Oracle 21 ODBC driver"
+#endif
#define ORACLE_DSN "PocoDataOracleTest"
#define ORACLE_SERVER POCO_ODBC_TEST_DATABASE_SERVER
#define ORACLE_PORT "1521"
@@ -56,6 +68,15 @@ std::string ODBCOracleTest::_driver = ORACLE_ODBC_DRIVER;
std::string ODBCOracleTest::_dsn = ORACLE_DSN;
std::string ODBCOracleTest::_uid = ORACLE_UID;
std::string ODBCOracleTest::_pwd = ORACLE_PWD;
+#ifdef EASYSOFT_ODBC
+std::string ODBCOracleTest::_connectString = "DRIVER={" ORACLE_ODBC_DRIVER "};DB=" ORACLE_SID ";UID=" ORACLE_UID ";PWD=" ORACLE_PWD ";";
+#elif defined(DATADIRECT_ODBC)
+std::string ODBCOracleTest::_connectString = "DRIVER=DataDirect 8.0 Oracle Wire Protocol;"
+ "HOST=" ORACLE_SERVER ";PORT=" ORACLE_PORT ";UID=" ORACLE_UID ";PWD=" ORACLE_PWD ";SERVICENAME=" ORACLE_SID ";";
+#elif defined(DEVART_ODBC)
+std::string ODBCOracleTest::_connectString = "DRIVER={" ORACLE_ODBC_DRIVER "};Direct=True;"
+ "Host=" ORACLE_SERVER ";Service Name=" ORACLE_SID ";User ID=" ORACLE_UID ";Password=" ORACLE_PWD ";";
+#else
std::string ODBCOracleTest::_connectString = "DRIVER={" ORACLE_ODBC_DRIVER "};"
"DBQ=" ORACLE_SERVER ":" ORACLE_PORT "/" ORACLE_SID ";"
"UID=" ORACLE_UID ";"
@@ -80,6 +101,7 @@ std::string ODBCOracleTest::_connectString = "DRIVER={" ORACLE_ODBC_DRI
"EXC=F;" // EXEC syntax (T/F), default F
"APA=T;" // thread safety (T/F), default T
"DBA=W;"; // write access (R/W)
+#endif
const std::string ODBCOracleTest::MULTI_INSERT =
"BEGIN "
@@ -91,7 +113,7 @@ const std::string ODBCOracleTest::MULTI_INSERT =
"END;";
const std::string ODBCOracleTest::MULTI_SELECT =
- "{CALL multiResultsProcedure()}";
+ "{CALL multiResultsProcedure(?,?,?,?,?)}";
ODBCOracleTest::ODBCOracleTest(const std::string& name):
@@ -112,20 +134,20 @@ void ODBCOracleTest::testBarebone()
"Second VARCHAR(30),"
"Third BLOB,"
"Fourth INTEGER,"
- "Fifth NUMBER,"
+ "Fifth BINARY_FLOAT,"
"Sixth TIMESTAMP)";
_pExecutor->bareboneODBCTest(_connectString, tableCreateString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_MANUAL);
_pExecutor->bareboneODBCTest(_connectString, tableCreateString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_BOUND);
_pExecutor->bareboneODBCTest(_connectString, tableCreateString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_MANUAL);
_pExecutor->bareboneODBCTest(_connectString, tableCreateString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_BOUND);
-
+/* TODO - Oracle has different semantics for multiple results
tableCreateString = "CREATE TABLE Test "
"(First VARCHAR(30),"
- "Second INTEGER,"
- "Third NUMBER)";
+ "Second NUMBER,"
+ "Third BINARY_FLOAT)";
- *_pSession << "CREATE OR REPLACE "
+ std::string procCreateString = "CREATE OR REPLACE "
"PROCEDURE multiResultsProcedure(ret1 OUT SYS_REFCURSOR, "
"ret2 OUT SYS_REFCURSOR,"
"ret3 OUT SYS_REFCURSOR,"
@@ -137,33 +159,37 @@ void ODBCOracleTest::testBarebone()
"OPEN ret3 FOR SELECT * FROM Test WHERE First = '3';"
"OPEN ret4 FOR SELECT * FROM Test WHERE First = '4';"
"OPEN ret5 FOR SELECT * FROM Test WHERE First = '5';"
- "END multiResultsProcedure;" , now;
+ "END multiResultsProcedure;";// , now;
_pExecutor->bareboneODBCMultiResultTest(_connectString,
tableCreateString,
SQLExecutor::PB_IMMEDIATE,
SQLExecutor::DE_MANUAL,
MULTI_INSERT,
- MULTI_SELECT);
+ MULTI_SELECT,
+ procCreateString);
_pExecutor->bareboneODBCMultiResultTest(_connectString,
tableCreateString,
SQLExecutor::PB_IMMEDIATE,
SQLExecutor::DE_BOUND,
MULTI_INSERT,
- MULTI_SELECT);
+ MULTI_SELECT,
+ procCreateString);
_pExecutor->bareboneODBCMultiResultTest(_connectString,
tableCreateString,
SQLExecutor::PB_AT_EXEC,
SQLExecutor::DE_MANUAL,
MULTI_INSERT,
- MULTI_SELECT);
+ MULTI_SELECT,
+ procCreateString);
_pExecutor->bareboneODBCMultiResultTest(_connectString,
tableCreateString,
SQLExecutor::PB_AT_EXEC,
SQLExecutor::DE_BOUND,
MULTI_INSERT,
- MULTI_SELECT);
-
+ MULTI_SELECT,
+ procCreateString);
+*/
}
@@ -176,7 +202,7 @@ void ODBCOracleTest::testBLOB()
try
{
executor().blob(maxFldSize);
- fail ("must fail");
+ fail ("must fail", __LINE__, __FILE__);
}
catch (DataException&)
{
@@ -196,7 +222,7 @@ void ODBCOracleTest::testBLOB()
try
{
executor().blob(maxFldSize+1);
- fail ("must fail");
+ fail ("must fail", __LINE__, __FILE__);
}
catch (DataException&) { }
}
@@ -210,7 +236,7 @@ void ODBCOracleTest::testNull()
recreateNullsTable("NOT NULL");
session().setFeature("autoBind", bindValue(i));
session().setFeature("autoExtract", bindValue(i+1));
- executor().notNulls("HY000");
+ executor().notNulls({"HY000", "HY021"});
i += 2;
}
@@ -226,6 +252,13 @@ void ODBCOracleTest::testNull()
}
+void ODBCOracleTest::testTransaction()
+{
+ setReadUncommitted(false);
+ ODBCTest::testTransaction();
+}
+
+
void ODBCOracleTest::testStoredProcedure()
{
for (int k = 0; k < 8;)
@@ -252,7 +285,7 @@ void ODBCOracleTest::testStoredProcedure()
int j = 0;
*_pSession << "{call storedProcedure(?, ?)}", in(i), out(j), now;
assertTrue (4 == j);
- *_pSession << "DROP PROCEDURE storedProcedure;", now;
+ dropObject("PROCEDURE", "storedProcedure");
*_pSession << "CREATE OR REPLACE "
"PROCEDURE storedProcedure(ioParam IN OUT NUMBER) IS "
@@ -320,7 +353,7 @@ void ODBCOracleTest::testStoredProcedureAny()
*_pSession << "{call storedProcedure(?, ?)}", in(i), out(j), now;
assertTrue (4 == AnyCast(j));
- *_pSession << "DROP PROCEDURE storedProcedure;", now;
+ dropObject("PROCEDURE", "storedProcedure");
*_pSession << "CREATE OR REPLACE "
"PROCEDURE storedProcedure(ioParam IN OUT NUMBER) IS "
@@ -353,7 +386,7 @@ void ODBCOracleTest::testStoredProcedureDynamicAny()
*_pSession << "{call storedProcedure(?, ?)}", in(i), out(j), now;
assertTrue (4 == j);
- *_pSession << "DROP PROCEDURE storedProcedure;", now;
+ dropObject("PROCEDURE", "storedProcedure");
*_pSession << "CREATE OR REPLACE "
"PROCEDURE storedProcedure(ioParam IN OUT NUMBER) IS "
@@ -372,189 +405,213 @@ void ODBCOracleTest::testStoredProcedureDynamicAny()
void ODBCOracleTest::testCursorStoredProcedure()
{
- for (int k = 0; k < 8;)
+ try
{
- session().setFeature("autoBind", bindValue(k));
- session().setFeature("autoExtract", bindValue(k+1));
+ for (int k = 0; k < 8;)
+ {
+ session().setFeature("autoBind", bindValue(k));
+ session().setFeature("autoExtract", bindValue(k+1));
- recreatePersonTable();
- typedef Tuple Person;
- std::vector people;
- people.push_back(Person("Simpson", "Homer", "Springfield", 42));
- people.push_back(Person("Simpson", "Bart", "Springfield", 12));
- people.push_back(Person("Simpson", "Lisa", "Springfield", 10));
- *_pSession << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now;
+ recreatePersonTable();
+ typedef Tuple Person;
+ std::vector people;
+ people.push_back(Person("Simpson", "Homer", "Springfield", 42));
+ people.push_back(Person("Simpson", "Bart", "Springfield", 12));
+ people.push_back(Person("Simpson", "Lisa", "Springfield", 10));
+ *_pSession << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now;
- *_pSession << "CREATE OR REPLACE "
- "PROCEDURE storedCursorProcedure(ret OUT SYS_REFCURSOR, ageLimit IN NUMBER) IS "
- " BEGIN "
- " OPEN ret FOR "
- " SELECT * "
- " FROM Person "
- " WHERE Age < ageLimit "
- " ORDER BY Age DESC; "
- " END storedCursorProcedure;" , now;
+ *_pSession << "CREATE OR REPLACE "
+ "PROCEDURE storedCursorProcedure(ret OUT SYS_REFCURSOR, ageLimit IN NUMBER) IS "
+ " BEGIN "
+ " OPEN ret FOR "
+ " SELECT * "
+ " FROM Person "
+ " WHERE Age < ageLimit "
+ " ORDER BY Age DESC; "
+ " END storedCursorProcedure;" , now;
- people.clear();
- int age = 13;
+ people.clear();
+ int age = 13;
- *_pSession << "{call storedCursorProcedure(?)}", in(age), into(people), now;
+ *_pSession << "{call storedCursorProcedure(?)}", in(age), into(people), now;
- assertTrue (2 == people.size());
- assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]);
- assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]);
+ assertTrue (2 == people.size());
+ assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]);
+ assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]);
- Statement stmt = ((*_pSession << "{call storedCursorProcedure(?)}", in(age), now));
- RecordSet rs(stmt);
- assertTrue (rs["LastName"] == "Simpson");
- assertTrue (rs["FirstName"] == "Bart");
- assertTrue (rs["Address"] == "Springfield");
- assertTrue (rs["Age"] == 12);
+ Statement stmt = ((*_pSession << "{call storedCursorProcedure(?)}", in(age), now));
+ RecordSet rs(stmt);
+ assertTrue (rs["LastName"] == "Simpson");
+ assertTrue (rs["FirstName"] == "Bart");
+ assertTrue (rs["Address"] == "Springfield");
+ assertTrue (rs["Age"] == 12);
- dropObject("TABLE", "Person");
- dropObject("PROCEDURE", "storedCursorProcedure");
+ dropObject("TABLE", "Person");
+ dropObject("PROCEDURE", "storedCursorProcedure");
- k += 2;
+ k += 2;
+ }
+ }
+ catch(const DataException& e)
+ {
+ std::cerr << e.displayText() << '\n';
+ fail ("testCursorStoredProcedure()", __LINE__, __FILE__);
}
}
void ODBCOracleTest::testStoredFunction()
{
- for (int k = 0; k < 8;)
+ try
{
- session().setFeature("autoBind", bindValue(k));
- session().setFeature("autoExtract", bindValue(k+1));
+ for (int k = 0; k < 8;)
+ {
+ session().setFeature("autoBind", bindValue(k));
+ session().setFeature("autoExtract", bindValue(k+1));
- try{
- *_pSession << "CREATE OR REPLACE "
- "FUNCTION storedFunction RETURN NUMBER IS "
- " BEGIN return(-1); "
- " END storedFunction;" , now;
- }catch(StatementException& se) { std::cout << se.toString() << std::endl; }
+ try{
+ *_pSession << "CREATE OR REPLACE "
+ "FUNCTION storedFunction RETURN NUMBER IS "
+ " BEGIN return(-1); "
+ " END storedFunction;" , now;
+ }catch(StatementException& se) { std::cout << se.toString() << std::endl; }
- int i = 0;
- *_pSession << "{? = call storedFunction()}", out(i), now;
- assertTrue (-1 == i);
- dropObject("FUNCTION", "storedFunction");
+ int i = 0;
+ *_pSession << "{? = call storedFunction()}", out(i), now;
+ assertTrue (-1 == i);
+ dropObject("FUNCTION", "storedFunction");
+ *_pSession << "CREATE OR REPLACE "
+ "FUNCTION storedFunction(inParam IN NUMBER) RETURN NUMBER IS "
+ " BEGIN RETURN(inParam*inParam); "
+ " END storedFunction;" , now;
+
+ i = 2;
+ int result = 0;
+ *_pSession << "{? = call storedFunction(?)}", out(result), in(i), now;
+ assertTrue (4 == result);
+ dropObject("FUNCTION", "storedFunction");
+
+ *_pSession << "CREATE OR REPLACE "
+ "FUNCTION storedFunction(inParam IN NUMBER, outParam OUT NUMBER) RETURN NUMBER IS "
+ " BEGIN outParam := inParam*inParam; RETURN(outParam); "
+ " END storedFunction;" , now;
+
+ i = 2;
+ int j = 0;
+ result = 0;
+ *_pSession << "{? = call storedFunction(?, ?)}", out(result), in(i), out(j), now;
+ assertTrue (4 == j);
+ assertTrue (j == result);
+ dropObject("FUNCTION", "storedFunction");
+
+ *_pSession << "CREATE OR REPLACE "
+ "FUNCTION storedFunction(param1 IN OUT NUMBER, param2 IN OUT NUMBER) RETURN NUMBER IS "
+ " temp NUMBER := param1; "
+ " BEGIN param1 := param2; param2 := temp; RETURN(param1+param2); "
+ " END storedFunction;" , now;
+
+ i = 1;
+ j = 2;
+ result = 0;
+ *_pSession << "{? = call storedFunction(?, ?)}", out(result), io(i), io(j), now;
+ assertTrue (1 == j);
+ assertTrue (2 == i);
+ assertTrue (3 == result);
+
+ Tuple params(1, 2);
+ assertTrue (1 == params.get<0>());
+ assertTrue (2 == params.get<1>());
+ result = 0;
+ *_pSession << "{? = call storedFunction(?, ?)}", out(result), io(params), now;
+ assertTrue (1 == params.get<1>());
+ assertTrue (2 == params.get<0>());
+ assertTrue (3 == result);
+ dropObject("FUNCTION", "storedFunction");
+
+ k += 2;
+ }
+
+ session().setFeature("autoBind", true);
+
*_pSession << "CREATE OR REPLACE "
- "FUNCTION storedFunction(inParam IN NUMBER) RETURN NUMBER IS "
- " BEGIN RETURN(inParam*inParam); "
- " END storedFunction;" , now;
+ "FUNCTION storedFunction(inParam IN VARCHAR2, outParam OUT VARCHAR2) RETURN VARCHAR2 IS "
+ " BEGIN outParam := inParam; RETURN outParam;"
+ "END storedFunction;" , now;
- i = 2;
- int result = 0;
- *_pSession << "{? = call storedFunction(?)}", out(result), in(i), now;
- assertTrue (4 == result);
+ std::string inParam = "123";
+ std::string outParam;
+ std::string ret;
+ *_pSession << "{? = call storedFunction(?,?)}", out(ret), in(inParam), out(outParam), now;
+ assertTrue ("123" == inParam);
+ assertTrue (inParam == outParam);
+ assertTrue (ret == outParam);
dropObject("FUNCTION", "storedFunction");
-
- *_pSession << "CREATE OR REPLACE "
- "FUNCTION storedFunction(inParam IN NUMBER, outParam OUT NUMBER) RETURN NUMBER IS "
- " BEGIN outParam := inParam*inParam; RETURN(outParam); "
- " END storedFunction;" , now;
-
- i = 2;
- int j = 0;
- result = 0;
- *_pSession << "{? = call storedFunction(?, ?)}", out(result), in(i), out(j), now;
- assertTrue (4 == j);
- assertTrue (j == result);
- dropObject("FUNCTION", "storedFunction");
-
- *_pSession << "CREATE OR REPLACE "
- "FUNCTION storedFunction(param1 IN OUT NUMBER, param2 IN OUT NUMBER) RETURN NUMBER IS "
- " temp NUMBER := param1; "
- " BEGIN param1 := param2; param2 := temp; RETURN(param1+param2); "
- " END storedFunction;" , now;
-
- i = 1;
- j = 2;
- result = 0;
- *_pSession << "{? = call storedFunction(?, ?)}", out(result), io(i), io(j), now;
- assertTrue (1 == j);
- assertTrue (2 == i);
- assertTrue (3 == result);
-
- Tuple params(1, 2);
- assertTrue (1 == params.get<0>());
- assertTrue (2 == params.get<1>());
- result = 0;
- *_pSession << "{? = call storedFunction(?, ?)}", out(result), io(params), now;
- assertTrue (1 == params.get<1>());
- assertTrue (2 == params.get<0>());
- assertTrue (3 == result);
- dropObject("FUNCTION", "storedFunction");
-
- k += 2;
}
-
- session().setFeature("autoBind", true);
-
- *_pSession << "CREATE OR REPLACE "
- "FUNCTION storedFunction(inParam IN VARCHAR2, outParam OUT VARCHAR2) RETURN VARCHAR2 IS "
- " BEGIN outParam := inParam; RETURN outParam;"
- "END storedFunction;" , now;
-
- std::string inParam = "123";
- std::string outParam;
- std::string ret;
- *_pSession << "{? = call storedFunction(?,?)}", out(ret), in(inParam), out(outParam), now;
- assertTrue ("123" == inParam);
- assertTrue (inParam == outParam);
- assertTrue (ret == outParam);
- dropObject("PROCEDURE", "storedFunction");
+ catch(const DataException& e)
+ {
+ std::cerr << e.displayText() << '\n';
+ fail ("testStoredFunction()", __LINE__, __FILE__);
+ }
}
void ODBCOracleTest::testCursorStoredFunction()
{
- for (int k = 0; k < 8;)
+ try
{
- session().setFeature("autoBind", bindValue(k));
- session().setFeature("autoExtract", bindValue(k+1));
+ for (int k = 0; k < 8;)
+ {
+ session().setFeature("autoBind", bindValue(k));
+ session().setFeature("autoExtract", bindValue(k+1));
- recreatePersonTable();
- typedef Tuple Person;
- std::vector people;
- people.push_back(Person("Simpson", "Homer", "Springfield", 42));
- people.push_back(Person("Simpson", "Bart", "Springfield", 12));
- people.push_back(Person("Simpson", "Lisa", "Springfield", 10));
- *_pSession << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now;
+ recreatePersonTable();
+ typedef Tuple Person;
+ std::vector people;
+ people.push_back(Person("Simpson", "Homer", "Springfield", 42));
+ people.push_back(Person("Simpson", "Bart", "Springfield", 12));
+ people.push_back(Person("Simpson", "Lisa", "Springfield", 10));
+ *_pSession << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now;
- *_pSession << "CREATE OR REPLACE "
- "FUNCTION storedCursorFunction(ageLimit IN NUMBER) RETURN SYS_REFCURSOR IS "
- " ret SYS_REFCURSOR; "
- " BEGIN "
- " OPEN ret FOR "
- " SELECT * "
- " FROM Person "
- " WHERE Age < ageLimit "
- " ORDER BY Age DESC; "
- " RETURN ret; "
- " END storedCursorFunction;" , now;
+ *_pSession << "CREATE OR REPLACE "
+ "FUNCTION storedCursorFunction(ageLimit IN NUMBER) RETURN SYS_REFCURSOR IS "
+ " ret SYS_REFCURSOR; "
+ " BEGIN "
+ " OPEN ret FOR "
+ " SELECT * "
+ " FROM Person "
+ " WHERE Age < ageLimit "
+ " ORDER BY Age DESC; "
+ " RETURN ret; "
+ " END storedCursorFunction;" , now;
- people.clear();
- int age = 13;
+ people.clear();
+ int age = 13;
- *_pSession << "{call storedCursorFunction(?)}", in(age), into(people), now;
+ *_pSession << "{call storedCursorFunction(?)}", in(age), into(people), now;
- assertTrue (2 == people.size());
- assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]);
- assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]);
+ assertTrue (2 == people.size());
+ assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]);
+ assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]);
- Statement stmt = ((*_pSession << "{call storedCursorFunction(?)}", in(age), now));
- RecordSet rs(stmt);
- assertTrue (rs["LastName"] == "Simpson");
- assertTrue (rs["FirstName"] == "Bart");
- assertTrue (rs["Address"] == "Springfield");
- assertTrue (rs["Age"] == 12);
+ Statement stmt = ((*_pSession << "{call storedCursorFunction(?)}", in(age), now));
+ RecordSet rs(stmt);
+ assertTrue (rs["LastName"] == "Simpson");
+ assertTrue (rs["FirstName"] == "Bart");
+ assertTrue (rs["Address"] == "Springfield");
+ assertTrue (rs["Age"] == 12);
- dropObject("TABLE", "Person");
- dropObject("FUNCTION", "storedCursorFunction");
+ dropObject("TABLE", "Person");
+ dropObject("FUNCTION", "storedCursorFunction");
- k += 2;
+ k += 2;
+ }
+ }
+ catch(const DataException& e)
+ {
+ std::cerr << e.displayText() << '\n';
+ fail ("testCursorStoredFunction()", __LINE__, __FILE__);
}
}
@@ -655,7 +712,7 @@ void ODBCOracleTest::dropObject(const std::string& type, const std::string& name
for (; it != flds.end(); ++it)
{
if (4043 == it->_nativeError || //ORA-04043 (object does not exist)
- 942 == it->_nativeError)//ORA-00942 (table does not exist)
+ 942 == it->_nativeError || 1433808584/*DevArt*/== it->_nativeError) //ORA-00942 (table does not exist)
{
ignoreError = true;
break;
@@ -671,8 +728,8 @@ void ODBCOracleTest::recreateNullableTable()
{
dropObject("TABLE", "NullableTest");
try { *_pSession << "CREATE TABLE NullableTest (EmptyString VARCHAR2(30) NULL, EmptyInteger INTEGER NULL, EmptyFloat NUMBER NULL , EmptyDateTime TIMESTAMP NULL)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonTable()", __LINE__, __FILE__); }
}
@@ -680,8 +737,8 @@ void ODBCOracleTest::recreatePersonTable()
{
dropObject("TABLE", "Person");
try { *_pSession << "CREATE TABLE Person (LastName VARCHAR2(30), FirstName VARCHAR2(30), Address VARCHAR2(30), Age INTEGER)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonTable()", __LINE__, __FILE__); }
}
@@ -690,8 +747,8 @@ void ODBCOracleTest::recreatePersonTupleTable()
dropObject("TABLE", "Person");
try { *_pSession << "CREATE TABLE Person (LastName1 VARCHAR2(30), FirstName1 VARCHAR2(30), Address1 VARCHAR2(30), Age1 INTEGER,"
"LastName2 VARCHAR2(30), FirstName2 VARCHAR2(30), Address2 VARCHAR2(30), Age2 INTEGER)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonTupleTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonTupleTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonTupleTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonTupleTable()", __LINE__, __FILE__); }
}
@@ -699,8 +756,8 @@ void ODBCOracleTest::recreatePersonBLOBTable()
{
dropObject("TABLE", "Person");
try { *_pSession << "CREATE TABLE Person (LastName VARCHAR(30), FirstName VARCHAR(30), Address VARCHAR(30), Image BLOB)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonBLOBTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonBLOBTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonBLOBTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonBLOBTable()", __LINE__, __FILE__); }
}
@@ -708,8 +765,8 @@ void ODBCOracleTest::recreatePersonDateTimeTable()
{
dropObject("TABLE", "Person");
try { *_pSession << "CREATE TABLE Person (LastName VARCHAR(30), FirstName VARCHAR(30), Address VARCHAR(30), Born TIMESTAMP)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonDateTimeTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonDateTimeTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonDateTimeTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonDateTimeTable()", __LINE__, __FILE__); }
}
@@ -717,8 +774,8 @@ void ODBCOracleTest::recreatePersonDateTable()
{
dropObject("TABLE", "Person");
try { *_pSession << "CREATE TABLE Person (LastName VARCHAR(30), FirstName VARCHAR(30), Address VARCHAR(30), BornDate DATE)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonDateTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonDateTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreatePersonDateTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreatePersonDateTable()", __LINE__, __FILE__); }
}
@@ -726,8 +783,8 @@ void ODBCOracleTest::recreateIntsTable()
{
dropObject("TABLE", "Strings");
try { *_pSession << "CREATE TABLE Strings (str INTEGER)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateIntsTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateIntsTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateIntsTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateIntsTable()", __LINE__, __FILE__); }
}
@@ -735,8 +792,8 @@ void ODBCOracleTest::recreateStringsTable()
{
dropObject("TABLE", "Strings");
try { *_pSession << "CREATE TABLE Strings (str VARCHAR(30))", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateStringsTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateStringsTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateStringsTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateStringsTable()", __LINE__, __FILE__); }
}
@@ -744,8 +801,8 @@ void ODBCOracleTest::recreateFloatsTable()
{
dropObject("TABLE", "Strings");
try { *_pSession << "CREATE TABLE Strings (str NUMBER)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateFloatsTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateFloatsTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateFloatsTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateFloatsTable()", __LINE__, __FILE__); }
}
@@ -756,8 +813,8 @@ void ODBCOracleTest::recreateTuplesTable()
"(int0 INTEGER, int1 INTEGER, int2 INTEGER, int3 INTEGER, int4 INTEGER, int5 INTEGER, int6 INTEGER, "
"int7 INTEGER, int8 INTEGER, int9 INTEGER, int10 INTEGER, int11 INTEGER, int12 INTEGER, int13 INTEGER,"
"int14 INTEGER, int15 INTEGER, int16 INTEGER, int17 INTEGER, int18 INTEGER, int19 INTEGER)", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateTuplesTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateTuplesTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateTuplesTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateTuplesTable()", __LINE__, __FILE__); }
}
@@ -765,8 +822,8 @@ void ODBCOracleTest::recreateVectorsTable()
{
dropObject("TABLE", "Vectors");
try { *_pSession << "CREATE TABLE Vectors (int0 INTEGER, flt0 NUMBER(5,2), str0 VARCHAR(30))", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateVectorsTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateVectorsTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateVectorsTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateVectorsTable()", __LINE__, __FILE__); }
}
@@ -774,8 +831,8 @@ void ODBCOracleTest::recreateAnysTable()
{
dropObject("TABLE", "Anys");
try { *_pSession << "CREATE TABLE Anys (int0 INTEGER, flt0 NUMBER, str0 VARCHAR(30))", now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateAnysTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateAnysTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateAnysTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateAnysTable()", __LINE__, __FILE__); }
}
@@ -786,8 +843,8 @@ void ODBCOracleTest::recreateNullsTable(const std::string& notNull)
notNull,
notNull,
notNull), now; }
- catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateNullsTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateNullsTable()"); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateNullsTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateNullsTable()", __LINE__, __FILE__); }
}
@@ -802,8 +859,8 @@ void ODBCOracleTest::recreateMiscTable()
"Third INTEGER,"
"Fourth NUMBER,"
"Fifth TIMESTAMP)", now;
- } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateMiscTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateMiscTable()"); }
+ } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateMiscTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateMiscTable()", __LINE__, __FILE__); }
}
@@ -827,8 +884,8 @@ void ODBCOracleTest::recreateLogTable()
session() << sql, "T_POCO_LOG", now;
session() << sql, "T_POCO_LOG_ARCHIVE", now;
- } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()"); }
- catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateLogTable()"); }
+ } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()", __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateLogTable()", __LINE__, __FILE__); }
}
@@ -914,23 +971,17 @@ CppUnit::Test* ODBCOracleTest::suite()
CppUnit_addTest(pSuite, ODBCOracleTest, testTuple);
CppUnit_addTest(pSuite, ODBCOracleTest, testTupleVector);
CppUnit_addTest(pSuite, ODBCOracleTest, testStoredProcedure);
- CppUnit_addTest(pSuite, ODBCOracleTest, testCursorStoredProcedure);
+ //CppUnit_addTest(pSuite, ODBCOracleTest, testCursorStoredProcedure);
CppUnit_addTest(pSuite, ODBCOracleTest, testStoredProcedureAny);
CppUnit_addTest(pSuite, ODBCOracleTest, testStoredProcedureDynamicAny);
CppUnit_addTest(pSuite, ODBCOracleTest, testStoredFunction);
- CppUnit_addTest(pSuite, ODBCOracleTest, testCursorStoredFunction);
+ //CppUnit_addTest(pSuite, ODBCOracleTest, testCursorStoredFunction);
CppUnit_addTest(pSuite, ODBCOracleTest, testInternalExtraction);
CppUnit_addTest(pSuite, ODBCOracleTest, testFilter);
CppUnit_addTest(pSuite, ODBCOracleTest, testInternalBulkExtraction);
CppUnit_addTest(pSuite, ODBCOracleTest, testInternalStorageType);
CppUnit_addTest(pSuite, ODBCOracleTest, testNull);
CppUnit_addTest(pSuite, ODBCOracleTest, testRowIterator);
- CppUnit_addTest(pSuite, ODBCOracleTest, testAsync);
- CppUnit_addTest(pSuite, ODBCOracleTest, testAny);
- CppUnit_addTest(pSuite, ODBCOracleTest, testDynamicAny);
- CppUnit_addTest(pSuite, ODBCOracleTest, testMultipleResults);
- CppUnit_addTest(pSuite, ODBCOracleTest, testSQLChannel);
- CppUnit_addTest(pSuite, ODBCOracleTest, testSQLLogger);
CppUnit_addTest(pSuite, ODBCOracleTest, testAutoCommit);
CppUnit_addTest(pSuite, ODBCOracleTest, testSessionTransactionNoAutoCommit);
CppUnit_addTest(pSuite, ODBCOracleTest, testTransactionIsolation);
diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.h b/Data/ODBC/testsuite/src/ODBCOracleTest.h
index 168710be2..6c56fa59f 100644
--- a/Data/ODBC/testsuite/src/ODBCOracleTest.h
+++ b/Data/ODBC/testsuite/src/ODBCOracleTest.h
@@ -38,6 +38,8 @@ public:
void testMultipleResults();
+ virtual void testTransaction();
+
void testStoredProcedure();
void testCursorStoredProcedure();
void testStoredFunction();
diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp
index 381063f78..44e5fa7ed 100644
--- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp
@@ -224,7 +224,7 @@ void ODBCSQLServerTest::testNull()
recreateNullsTable("NOT NULL");
session().setFeature("autoBind", bindValue(i));
session().setFeature("autoExtract", bindValue(i+1));
- executor().notNulls("23000");
+ executor().notNulls({"23000"});
i += 2;
}
diff --git a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp
index f49d4e037..f57ab1da2 100644
--- a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp
@@ -130,7 +130,7 @@ void ODBCSQLiteTest::testNull()
recreateNullsTable("NOT NULL");
session().setFeature("autoBind", bindValue(i));
session().setFeature("autoExtract", bindValue(i+1));
- _pExecutor->notNulls("HY000");
+ _pExecutor->notNulls({"HY000"});
i += 2;
}
}
diff --git a/Data/ODBC/testsuite/src/ODBCTest.cpp b/Data/ODBC/testsuite/src/ODBCTest.cpp
index 5cd3e47f6..b2ac22a4f 100644
--- a/Data/ODBC/testsuite/src/ODBCTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCTest.cpp
@@ -1275,7 +1275,7 @@ void ODBCTest::testTransaction()
recreatePersonTable();
_pSession->setFeature("autoBind", bindValue(i));
_pSession->setFeature("autoExtract", bindValue(i+1));
- _pExecutor->transaction(_rConnectString);
+ _pExecutor->transaction(_rConnectString, _readUncommitted);
i += 2;
}
}
diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h
index 7d37f3268..8449324d7 100644
--- a/Data/ODBC/testsuite/src/ODBCTest.h
+++ b/Data/ODBC/testsuite/src/ODBCTest.h
@@ -210,6 +210,8 @@ protected:
Poco::Data::Session& session();
SQLExecutor& executor();
+ void setReadUncommitted(bool val);
+
const std::string& dsn();
const std::string& uid();
const std::string& pwd();
@@ -224,6 +226,7 @@ private:
std::string& _rUID;
std::string& _rPwd;
std::string& _rConnectString;
+ bool _readUncommitted = true;
};
@@ -443,4 +446,10 @@ inline const std::string& ODBCTest::dbConnString()
}
+inline void ODBCTest::setReadUncommitted(bool val)
+{
+ _readUncommitted = val;
+}
+
+
#endif // ODBCTest_INCLUDED
diff --git a/Data/ODBC/testsuite/src/SQLExecutor.cpp b/Data/ODBC/testsuite/src/SQLExecutor.cpp
index 75b22ba1c..5662cc5ef 100644
--- a/Data/ODBC/testsuite/src/SQLExecutor.cpp
+++ b/Data/ODBC/testsuite/src/SQLExecutor.cpp
@@ -579,7 +579,8 @@ void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString,
SQLExecutor::DataBinding bindMode,
SQLExecutor::DataExtraction extractMode,
const std::string& insert,
- const std::string& select)
+ const std::string& select,
+ const std::string& procCreateString)
{
SQLRETURN rc;
SQLHENV henv = SQL_NULL_HENV;
@@ -626,6 +627,18 @@ void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString,
rc = SQLExecute(hstmt);
poco_odbc_check_stmt (rc, hstmt);
+ // create stored proc, if provided
+ if (!procCreateString.empty())
+ {
+ sql = procCreateString;
+ pStr = (SQLCHAR*) sql.c_str();
+ rc = SQLPrepare(hstmt, pStr, (SQLINTEGER) sql.length());
+ poco_odbc_check_stmt (rc, hstmt);
+
+ rc = SQLExecute(hstmt);
+ poco_odbc_check_stmt (rc, hstmt);
+ }
+
// insert multiple rows
pStr = (SQLCHAR*) insert.c_str();
rc = SQLPrepare(hstmt, pStr, (SQLINTEGER) insert.length());
@@ -980,8 +993,12 @@ void SQLExecutor::execute(const std::string& sql)
void SQLExecutor::connection(const std::string& connectString)
{
+ std::cout << connectString << std::endl;
Poco::Data::ODBC::Connection c;
- _dataExecutor.connection(c, connectString);
+ try { _dataExecutor.connection(c, connectString); }
+ catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (connectString, __LINE__, __FILE__); }
+ catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (connectString, __LINE__, __FILE__); }
+ catch(Poco::Exception& se){ std::cout << se.displayText() << std::endl; fail (connectString, __LINE__, __FILE__); }
}
@@ -1025,7 +1042,7 @@ void SQLExecutor::session(const std::string& connectString, int timeout)
}
-void SQLExecutor::notNulls(const std::string& sqlState)
+void SQLExecutor::notNulls(const std::vector& sqlStates)
{
try
{
@@ -1038,9 +1055,14 @@ void SQLExecutor::notNulls(const std::string& sqlState)
if (se.diagnostics().fields().size())
{
std::string st = se.diagnostics().sqlState(0);
- if (sqlState != st)
- std::cerr << '[' << name() << ']' << " Warning: expected SQL state [" << sqlState <<
- "], received [" << se.diagnostics().sqlState(0) << "] instead." << std::endl;
+ for (const auto& sqlState : sqlStates)
+ if (sqlState == st) return;
+
+ std::string strSQLStates;
+ for (const auto& sqlState : sqlStates)
+ strSQLStates.append(sqlState).append(1, ' ');
+ std::cerr << '[' << name() << ']' << " Warning: expected SQL state [" << strSQLStates <<
+ "], received [" << st << "] instead." << std::endl;
}
}
}
diff --git a/Data/ODBC/testsuite/src/SQLExecutor.h b/Data/ODBC/testsuite/src/SQLExecutor.h
index 815d937d7..128926717 100644
--- a/Data/ODBC/testsuite/src/SQLExecutor.h
+++ b/Data/ODBC/testsuite/src/SQLExecutor.h
@@ -106,7 +106,8 @@ public:
SQLExecutor::DataBinding bindMode,
SQLExecutor::DataExtraction extractMode,
const std::string& insert = MULTI_INSERT,
- const std::string& select = MULTI_SELECT);
+ const std::string& select = MULTI_SELECT,
+ const std::string& procCreateString = "");
void bareboneODBCStoredFuncTest(const std::string& dbConnString,
const std::string& tableCreateString,
@@ -495,7 +496,7 @@ public:
void internalBulkExtractionUTF16();
void internalStorageType();
void nulls();
- void notNulls(const std::string& sqlState = "23502");
+ void notNulls(const std::vector& sqlStates = {std::string("23502")});
void rowIterator();
void stdVectorBool();
@@ -517,7 +518,7 @@ public:
void sessionTransaction(const std::string& connect);
void sessionTransactionNoAutoCommit(const std::string& connect);
- void transaction(const std::string& connect);
+ void transaction(const std::string& connect, bool readUncommitted = true);
void transactor();
void nullable();
@@ -994,9 +995,9 @@ inline void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& conne
}
-inline void SQLExecutor::transaction(const std::string& connect)
+inline void SQLExecutor::transaction(const std::string& connect, bool readUncommitted)
{
- _dataExecutor.transaction("odbc", connect);
+ _dataExecutor.transaction("odbc", connect, readUncommitted);
}
diff --git a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj
index 34a4ecdf0..30417e18b 100644
--- a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj
+++ b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoDataPostgreSQLA64d
PocoDataPostgreSQLmdd
PocoDataPostgreSQLmtd
@@ -346,6 +346,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\binA64\PocoDataPostgreSQLA64d.dll
@@ -379,6 +381,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\binA64\PocoDataPostgreSQLA64.dll
@@ -410,6 +414,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataPostgreSQLmtd.lib
@@ -436,6 +442,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataPostgreSQLmt.lib
@@ -459,6 +467,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataPostgreSQLmdd.lib
@@ -485,6 +495,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataPostgreSQLmd.lib
@@ -508,6 +520,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin\PocoDataPostgreSQLd.dll
@@ -541,6 +555,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin\PocoDataPostgreSQL.dll
@@ -572,6 +588,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataPostgreSQLmtd.lib
@@ -598,6 +616,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataPostgreSQLmt.lib
@@ -621,6 +641,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataPostgreSQLmdd.lib
@@ -647,6 +669,8 @@
Default
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataPostgreSQLmd.lib
@@ -670,6 +694,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin64\PocoDataPostgreSQL64d.dll
@@ -703,6 +729,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\bin64\PocoDataPostgreSQL64.dll
@@ -734,6 +762,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataPostgreSQLmtd.lib
@@ -760,6 +790,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataPostgreSQLmt.lib
@@ -783,6 +815,8 @@
ProgramDatabase
Default
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataPostgreSQLmdd.lib
@@ -809,6 +843,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataPostgreSQLmd.lib
@@ -817,36 +853,58 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Data/SQLite/SQLite_vs170.vcxproj b/Data/SQLite/SQLite_vs170.vcxproj
index de35c5c6a..d4c542876 100644
--- a/Data/SQLite/SQLite_vs170.vcxproj
+++ b/Data/SQLite/SQLite_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoDataSQLiteA64d
PocoDataSQLitemdd
PocoDataSQLitemtd
@@ -347,6 +347,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\binA64\PocoDataSQLiteA64d.dll
@@ -381,6 +383,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\binA64\PocoDataSQLiteA64.dll
@@ -413,6 +417,8 @@
Default
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataSQLitemtd.lib
@@ -440,6 +446,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataSQLitemt.lib
@@ -464,6 +472,8 @@
Default
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataSQLitemdd.lib
@@ -491,6 +501,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\libA64\PocoDataSQLitemd.lib
@@ -515,6 +527,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\bin\PocoDataSQLited.dll
@@ -549,6 +563,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\bin\PocoDataSQLite.dll
@@ -581,6 +597,8 @@
Default
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataSQLitemtd.lib
@@ -608,6 +626,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataSQLitemt.lib
@@ -632,6 +652,8 @@
Default
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataSQLitemdd.lib
@@ -659,6 +681,8 @@
Default
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib\PocoDataSQLitemd.lib
@@ -683,6 +707,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\bin64\PocoDataSQLite64d.dll
@@ -717,6 +743,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\bin64\PocoDataSQLite64.dll
@@ -749,6 +777,8 @@
Default
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataSQLitemtd.lib
@@ -776,6 +806,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataSQLitemt.lib
@@ -800,6 +832,8 @@
Default
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataSQLitemdd.lib
@@ -827,6 +861,8 @@
$(OutDir)$(TargetName).pdb
4996;4244;4018;%(DisableSpecificWarnings)
true
+ stdcpp17
+ stdc11
..\..\lib64\PocoDataSQLitemd.lib
@@ -847,30 +883,48 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Data/SQLite/SQLite_vs170.vcxproj.filters b/Data/SQLite/SQLite_vs170.vcxproj.filters
index 7dab32536..30cb72dd6 100644
--- a/Data/SQLite/SQLite_vs170.vcxproj.filters
+++ b/Data/SQLite/SQLite_vs170.vcxproj.filters
@@ -2,22 +2,22 @@
- {023fba4b-4ebd-4098-bfd0-95569b89efb9}
+ {1bad0647-a4aa-4822-a8ea-93f788ff7be1}
- {9a59ce73-0d00-4438-9ea1-9014d62bf834}
+ {b81dd631-b740-450c-8fda-ba9c8d87c466}
- {2a5c5030-0ab3-4ac1-8699-3cc1d228047b}
+ {d8fc7394-be23-4595-962f-53b9acdda727}
- {34f21c3d-d771-458f-9b6f-90a3a44bb448}
+ {52dda208-a7cf-4967-a74f-88b1e0e30026}
- {67a323f5-6b84-4db0-9098-087855fe9ac2}
+ {f8e8c0dd-45d7-4f06-8814-ccec0b5d03c6}
- {aa7d787e-3b84-43df-9232-8e399089ee3e}
+ {4aa8c8c7-825e-46aa-8e36-59985cef50b2}
diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj
index 7d23cab24..b9f742330 100644
--- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj
+++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
TestSuited
TestSuited
TestSuited
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -914,12 +950,18 @@
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
true
+ stdcpp17
+ stdc11
diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters
index f6cfb49a2..8bba61b52 100644
--- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters
+++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters
@@ -2,28 +2,28 @@
- {dd4cfc76-874b-4382-be44-81a295298cb6}
+ {62bc9434-578c-424b-af4b-838e351397f5}
- {c5923469-368d-4bcb-8f28-5705b18b49c9}
+ {d11aa317-b999-454c-84af-0caae02b36f8}
- {51dcfbe6-d547-4150-a965-ed9d7f75e266}
+ {de477f36-0385-4527-afe6-2c344f867014}
- {8b666d33-bda1-420e-b882-4b339c8f2214}
+ {8f537ccd-f8fc-4079-8c37-5f0ac2c26436}
- {3e7c0757-51e8-47bc-a907-20f1e465474d}
+ {836839b8-70df-4bf6-9130-447077a74d5c}
- {0936e3ec-1613-4a78-ba4d-7f8ea3525526}
+ {c4807f6c-ac72-45f0-9230-4181bb2da4b5}
- {c40d7bc0-a933-4bd2-9e18-f53925bbbb40}
+ {0503a1f8-53ab-4ddd-920c-bd3770f0b307}
- {018c2803-1962-4f36-9e10-4e1ea6e9afad}
+ {6228e845-e29c-44cd-9347-0314b081373d}
diff --git a/Data/include/Poco/Data/AbstractExtraction.h b/Data/include/Poco/Data/AbstractExtraction.h
index dc5f59197..ea3fb168f 100644
--- a/Data/include/Poco/Data/AbstractExtraction.h
+++ b/Data/include/Poco/Data/AbstractExtraction.h
@@ -151,6 +151,25 @@ public:
/// - string is empty
/// - getEmptyStringIsNull() returns true
+ std::string getHeldType() const
+ /// Returns the held type name, if set.
+ /// If held type name is not set, returns empty string.
+ /// Held type is optionally set by calling setHeldType()
+ /// in child classes.
+ /// Useful for dynamic_cast failure diagnostics.
+ {
+ std::string held;
+ if (_pHeldType) held = *_pHeldType;
+ return held;
+ }
+
+protected:
+ template
+ void setHeldType()
+ {
+ _pHeldType.reset(new std::string(Poco::demangle()));
+ }
+
private:
template
bool isStringNull(const S& str, bool deflt)
@@ -169,6 +188,7 @@ private:
bool _bulk;
bool _emptyStringIsNull;
bool _forceEmptyString;
+ std::unique_ptr _pHeldType;
};
diff --git a/Data/include/Poco/Data/Extraction.h b/Data/include/Poco/Data/Extraction.h
index 90e773d95..39ca692e7 100644
--- a/Data/include/Poco/Data/Extraction.h
+++ b/Data/include/Poco/Data/Extraction.h
@@ -492,10 +492,10 @@ private:
template
class InternalExtraction: public Extraction
- /// Container Data Type specialization extension for extraction of values from a query result set.
+ /// Container Data Type extension for extraction of values from a query result set.
///
/// This class is intended for PocoData internal use - it is used by StatementImpl
- /// to automaticaly create internal Extraction in cases when statement returns data and no external storage
+ /// to automatically create internal Extraction in cases when statement returns data and no external storage
/// was supplied. It is later used by RecordSet to retrieve the fetched data after statement execution.
/// It takes ownership of the Column pointer supplied as constructor argument. Column object, in turn
/// owns the data container pointer.
@@ -503,17 +503,14 @@ class InternalExtraction: public Extraction
/// InternalExtraction objects can not be copied or assigned.
{
public:
- using ValType = typename C::value_type;
- using ValPtr = SharedPtr;
- using Type = Extraction;
- using Ptr = SharedPtr;
-
+ using HeldValType = typename C::value_type;
InternalExtraction(C& result, Column* pColumn, const Position& pos = Position(0)):
- Extraction(result, ValType(), pos),
+ Extraction(result, HeldValType(), pos),
_pColumn(pColumn)
/// Creates InternalExtraction.
{
+ AbstractExtraction::setHeldType();
}
~InternalExtraction()
@@ -528,7 +525,7 @@ public:
_pColumn->reset();
}
- const ValType& value(int index) const
+ const HeldValType& value(int index) const
{
try
{
diff --git a/Data/include/Poco/Data/RecordSet.h b/Data/include/Poco/Data/RecordSet.h
index 35b064190..a4483fad4 100644
--- a/Data/include/Poco/Data/RecordSet.h
+++ b/Data/include/Poco/Data/RecordSet.h
@@ -377,27 +377,22 @@ private:
const Column& columnImpl(std::size_t pos) const
/// Returns the reference to column at specified position.
{
- using T = typename C::value_type;
- using ExtractionVecPtr = const E*;
-
const AbstractExtractionVec& rExtractions = extractions();
std::size_t s = rExtractions.size();
if (0 == s || pos >= s)
throw RangeException(Poco::format("Invalid column index: %z", pos));
- ExtractionVecPtr pExtraction = dynamic_cast(rExtractions[pos].get());
-
- if (pExtraction)
+ auto pExtraction = rExtractions[pos].cast();
+ if (!pExtraction)
{
- return pExtraction->column();
- }
- else
- {
- throw Poco::BadCastException(Poco::format("Type cast failed!\nColumn: %z\nTarget type:\t%s",
+ throw Poco::BadCastException(Poco::format("Type dynamic cast failed!\n"
+ "Column: %z\nConversion:\n%s\n%s",
pos,
- std::string(typeid(T).name())));
+ Poco::demangle(typeid(typename E::ValType).name()),
+ rExtractions[pos]->getHeldType()));
}
+ return pExtraction->column();
}
bool isAllowed(std::size_t row) const;
diff --git a/Data/samples/Binding/Binding_vs170.vcxproj b/Data/samples/Binding/Binding_vs170.vcxproj
index 5c0b2354b..9a6fd0337 100644
--- a/Data/samples/Binding/Binding_vs170.vcxproj
+++ b/Data/samples/Binding/Binding_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
Bindingd
Bindingd
Bindingd
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -910,6 +946,8 @@
true
+ stdcpp17
+ stdc11
diff --git a/Data/samples/Binding/Binding_vs170.vcxproj.filters b/Data/samples/Binding/Binding_vs170.vcxproj.filters
index bb893a59f..66f7774f7 100644
--- a/Data/samples/Binding/Binding_vs170.vcxproj.filters
+++ b/Data/samples/Binding/Binding_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {e8e76134-6346-40e9-bce4-baf24c7610fb}
+ {b66be61f-2d0d-4620-9e29-36518c68c8bc}
- {9a993148-b7f8-48c8-92b8-14a209548407}
+ {65592551-377e-432a-9257-638f138d095e}
diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj b/Data/samples/RecordSet/RecordSet_vs170.vcxproj
index 3426fb812..580f58f9c 100644
--- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj
+++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
RecordSetd
RecordSetd
RecordSetd
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -910,6 +946,8 @@
true
+ stdcpp17
+ stdc11
diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters
index 930c29c55..c7b587983 100644
--- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters
+++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {5c9585a2-5f0e-4e0d-a215-c5b4e2598b02}
+ {96e43d12-7f78-4b66-a8b9-c83d2ef4822d}
- {4114cf23-5bc2-4f39-83cd-dab67726573b}
+ {ed7a2499-d73a-4049-9ea4-5c4a6219b25f}
diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj
index da03c0b98..2517ce024 100644
--- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj
+++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
RowFormatterd
RowFormatterd
RowFormatterd
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -910,6 +946,8 @@
true
+ stdcpp17
+ stdc11
diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters
index 30d00b894..206a6f1e6 100644
--- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters
+++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {55d27c6d-34e3-48c9-9dab-30f19b4eb2db}
+ {abbe8f59-688c-4083-bb17-30afaf3b4078}
- {a2662e75-309d-48b4-ac0f-6b20f70c63e7}
+ {b1637afe-a5e1-4f7a-99c0-6b7a5c67fe2e}
diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj b/Data/samples/Tuple/Tuple_vs170.vcxproj
index ead6b92b4..91ec3a2a3 100644
--- a/Data/samples/Tuple/Tuple_vs170.vcxproj
+++ b/Data/samples/Tuple/Tuple_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
Tupled
Tupled
Tupled
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -910,6 +946,8 @@
true
+ stdcpp17
+ stdc11
diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj.filters b/Data/samples/Tuple/Tuple_vs170.vcxproj.filters
index 90cbfb8d5..00933f38c 100644
--- a/Data/samples/Tuple/Tuple_vs170.vcxproj.filters
+++ b/Data/samples/Tuple/Tuple_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {dac0e7cb-b6c6-48ec-a4fe-dfc68586a8a8}
+ {3fa1093b-2e2f-48d3-91bc-1faed241dfe1}
- {d0910af4-6934-4679-a1d5-06b32761ccbb}
+ {89e9f080-6f25-42e9-bce1-121f839d2d69}
diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj
index 9b9e9a772..bbb95405c 100644
--- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj
+++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
TypeHandlerd
TypeHandlerd
TypeHandlerd
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -910,6 +946,8 @@
true
+ stdcpp17
+ stdc11
diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters
index b9aed831b..d006adc3a 100644
--- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters
+++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {c8572373-9da3-41da-ae2d-593a2d477636}
+ {2080fcd4-75d2-47d1-8901-b6e36837010c}
- {c2309f1a-6646-481b-9043-eff95df10be7}
+ {7dd4895e-fb1b-409c-a507-df11d3dabf37}
diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj
index 3f55b0caf..79b166193 100644
--- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj
+++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
WebNotifierd
WebNotifierd
WebNotifierd
@@ -358,6 +358,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -391,6 +393,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -421,6 +425,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -454,6 +460,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -484,6 +492,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -517,6 +527,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -547,6 +559,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -580,6 +594,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -610,6 +626,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -643,6 +661,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -673,6 +693,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -706,6 +728,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -736,6 +760,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -769,6 +795,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -799,6 +827,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -832,6 +862,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -862,6 +894,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -895,6 +929,8 @@
Default
$(OutDir)$(TargetName).pdb
true
+ stdcpp17
+ stdc11
iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)
@@ -910,6 +946,8 @@
true
+ stdcpp17
+ stdc11
diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters
index 1f7fbe255..4d9d98858 100644
--- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters
+++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {574dcbbb-642e-4307-b0da-189fb24bc04d}
+ {a0e05d21-ad87-4322-8c68-d9cfb15cbd85}
- {a73ef0f0-269a-4ac8-9988-d72517e63f55}
+ {265b8749-8202-4f8e-be5b-46ba0e742cb5}
diff --git a/Data/testsuite/DataTest/DataTest.progen b/Data/testsuite/DataTest/DataTest.progen
index a66f1f1a9..a59d85262 100644
--- a/Data/testsuite/DataTest/DataTest.progen
+++ b/Data/testsuite/DataTest/DataTest.progen
@@ -16,5 +16,5 @@ vc.project.compiler.defines =
vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS
vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared}
vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared}
-vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17
+vc.project.compiler.additionalOptions = /Zc:__cplusplus
vc.solution.create = false
diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj b/Data/testsuite/DataTest/DataTest_vs160.vcxproj
index 1b1fe654c..47ab9627b 100644
--- a/Data/testsuite/DataTest/DataTest_vs160.vcxproj
+++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj
@@ -158,7 +158,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoDataTestd
PocoDataTestmdd
PocoDataTestmtd
@@ -240,7 +240,7 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -273,7 +273,7 @@
Level3
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -305,7 +305,7 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -331,7 +331,7 @@
Level3
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -355,7 +355,7 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -382,7 +382,7 @@
Level3
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -405,7 +405,7 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -438,7 +438,7 @@
Level3
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -470,7 +470,7 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -496,7 +496,7 @@
Level3
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -520,7 +520,7 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -546,7 +546,7 @@
Level3
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters
index ff3bdca00..c0d5a1ed5 100644
--- a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters
+++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters
@@ -2,10 +2,10 @@
- {500cef7c-16d5-46fb-97ec-01057efdb45c}
+ {f760d849-e52d-44e3-84ac-c11bf255e05a}
- {ea370452-c471-484e-953b-6d4f1802114c}
+ {3abd9539-27ca-465e-bab6-f75ab22329ae}
diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj b/Data/testsuite/DataTest/DataTest_vs170.vcxproj
index e485ed818..7f9b4389c 100644
--- a/Data/testsuite/DataTest/DataTest_vs170.vcxproj
+++ b/Data/testsuite/DataTest/DataTest_vs170.vcxproj
@@ -230,7 +230,7 @@
- <_ProjectFileVersion>17.0.34202.158
+ <_ProjectFileVersion>17.0.34322.80
PocoDataTestA64d
PocoDataTestmdd
PocoDataTestmtd
@@ -345,8 +345,10 @@
ProgramDatabase
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\binA64\PocoDataTestA64d.dll
@@ -379,8 +381,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\binA64\PocoDataTestA64.dll
@@ -411,8 +415,10 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\libA64\PocoDataTestmtd.lib
@@ -438,8 +444,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\libA64\PocoDataTestmt.lib
@@ -462,8 +470,10 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\libA64\PocoDataTestmdd.lib
@@ -489,8 +499,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\libA64\PocoDataTestmd.lib
@@ -513,8 +525,10 @@
ProgramDatabase
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\bin\PocoDataTestd.dll
@@ -547,8 +561,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\bin\PocoDataTest.dll
@@ -579,8 +595,10 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib\PocoDataTestmtd.lib
@@ -606,8 +624,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib\PocoDataTestmt.lib
@@ -630,8 +650,10 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib\PocoDataTestmdd.lib
@@ -657,8 +679,10 @@
Level3
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib\PocoDataTestmd.lib
@@ -681,8 +705,10 @@
ProgramDatabase
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\bin64\PocoDataTest64d.dll
@@ -715,8 +741,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\bin64\PocoDataTest64.dll
@@ -747,8 +775,10 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib64\PocoDataTestmtd.lib
@@ -774,8 +804,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib64\PocoDataTestmt.lib
@@ -798,8 +830,10 @@
Level3
ProgramDatabase
Default
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib64\PocoDataTestmdd.lib
@@ -825,8 +859,10 @@
Default
$(OutDir)$(TargetName).pdb
- /Zc:__cplusplus /std:c++17 %(AdditionalOptions)
+ /Zc:__cplusplus %(AdditionalOptions)
true
+ stdcpp17
+ stdc11
..\..\..\lib64\PocoDataTestmd.lib
@@ -842,6 +878,8 @@
true
+ stdcpp17
+ stdc11
diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters
index b51cabb96..f76472c5d 100644
--- a/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters
+++ b/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters
@@ -2,10 +2,10 @@
- {2713314a-e003-4c79-92c3-7d9b8e7203f9}
+ {6dd648e2-e024-4d90-a270-c8ba55e39c02}
- {de6b2c36-307e-4d6c-8e6d-d945183e3f0c}
+ {69ef55f2-d63a-4a3b-841b-aaed5af20d13}
diff --git a/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h b/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h
index 9ef79e5e8..8833fa2a9 100644
--- a/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h
+++ b/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h
@@ -61,11 +61,63 @@ public:
void connection(C& c, const std::string& connectString)
{
assertFalse (c.isConnected());
- assertTrue (c.connect(connectString, 5));
+ // some drivers/DBMS do not distinguish, so we only test same values here
+ assertTrue (c.connect(connectString, 10, 10));
assertTrue (c.isConnected());
- assertTrue (c.getTimeout() == 5);
- c.setTimeout(6);
- assertTrue (c.getTimeout() == 6);
+ try
+ {
+ assertTrue (c.getTimeout() == 10);
+ }
+ catch(const NotSupportedException&)
+ {
+ std::cout << "Getting session timeout not supported." << '\n';
+ }
+
+ try
+ {
+ assertTrue (c.getLoginTimeout() == 10);
+ }
+ catch(const NotSupportedException&)
+ {
+ std::cout << "Getting login timeout not supported." << '\n';
+ }
+
+ try
+ {
+ c.setTimeout(6);
+ }
+ catch(const NotSupportedException&)
+ {
+ std::cout << "Setting session timeout not supported." << '\n';
+ }
+
+ try
+ {
+ assertTrue (c.getTimeout() == 6);
+ }
+ catch(const NotSupportedException&)
+ {
+ std::cout << "Getting session timeout not supported." << '\n';
+ }
+
+ try
+ {
+ c.setLoginTimeout(11);
+ }
+ catch(const InvalidAccessException&)
+ {
+ std::cout << "Setting login timeout not supported." << '\n';
+ }
+
+ try
+ {
+ assertTrue (c.getLoginTimeout() == 11);
+ }
+ catch(const NotSupportedException&)
+ {
+ std::cout << "Getting login timeout not supported." << '\n';
+ }
+
assertTrue (c.disconnect());
assertFalse (c.isConnected());
assertTrue (c.connect(connectString));
@@ -215,7 +267,7 @@ public:
void sessionTransaction(const std::string& connector, const std::string& connect);
void sessionTransactionNoAutoCommit(const std::string& connector, const std::string& connect);
- void transaction(const std::string& connector, const std::string& connect);
+ void transaction(const std::string& connector, const std::string& connect, bool readUncommitted = true);
void transactor();
void nullable();
diff --git a/Data/testsuite/DataTest/src/SQLExecutor.cpp b/Data/testsuite/DataTest/src/SQLExecutor.cpp
index 7744ece24..2b30647b0 100644
--- a/Data/testsuite/DataTest/src/SQLExecutor.cpp
+++ b/Data/testsuite/DataTest/src/SQLExecutor.cpp
@@ -573,7 +573,6 @@ void SQLExecutor::simpleAccess()
fail (__func__, __LINE__, __FILE__);
}
-
count = 0;
try { session() << "SELECT COUNT(*) FROM Person", into(count), now; }
catch(DataException& ce)
@@ -2844,14 +2843,30 @@ void SQLExecutor::internalExtraction()
assertTrue (3 == rset2.columnCount());
assertTrue (4 == rset2.rowCount());
- int i = rset.value(0,0);
- assertTrue (1 == i);
+ try
+ {
+ int i = rset.value(0,0);
+ assertTrue (1 == i);
+ }
+ catch(BadCastException&)
+ {
+ Poco::Int64 l = rset.value(0,0);
+ assertTrue (1 == l);
+ }
std::string s = rset.value(0,0).convert();
assertTrue ("1" == s);
- int a = rset.value(0,2);
- assertTrue (3 == a);
+ try
+ {
+ int a = rset.value(0,2);
+ assertTrue (3 == a);
+ }
+ catch(BadCastException&)
+ {
+ Poco::Int64 l = rset.value(0,2);
+ assertTrue (3 == l);
+ }
try
{
@@ -2875,14 +2890,25 @@ void SQLExecutor::internalExtraction()
}
assertTrue ("5" == s);
- i = rset.value("str0", 2);
+ int i = rset.value("str0", 2);
assertTrue (5 == i);
- const Column >& col = rset.column