diff --git a/build/770.vcxproj b/build/770.vcxproj
index 014b61b1a..8792fa333 100644
--- a/build/770.vcxproj
+++ b/build/770.vcxproj
@@ -71,7 +71,7 @@
false
MultiThreadedDebug
.\..\debug/770.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/771mod.vcxproj b/build/771mod.vcxproj
index d7b5d9d4d..99ec563ee 100644
--- a/build/771mod.vcxproj
+++ b/build/771mod.vcxproj
@@ -114,7 +114,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/772mod.vcxproj b/build/772mod.vcxproj
index 278197ddc..0c93bae3c 100644
--- a/build/772mod.vcxproj
+++ b/build/772mod.vcxproj
@@ -115,7 +115,7 @@
false
MultiThreadedDebug
.\..\debug/772mod.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/773mod.vcxproj b/build/773mod.vcxproj
index 60d714a58..98069f136 100644
--- a/build/773mod.vcxproj
+++ b/build/773mod.vcxproj
@@ -69,7 +69,7 @@
false
MultiThreadedDebug
.\..\debug/773mod.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/774.vcxproj b/build/774.vcxproj
index 88c950bb3..a70b03b90 100644
--- a/build/774.vcxproj
+++ b/build/774.vcxproj
@@ -69,7 +69,7 @@
false
MultiThreadedDebug
.\..\debug/774.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/775.vcxproj b/build/775.vcxproj
index 407ae8184..c9792f89c 100644
--- a/build/775.vcxproj
+++ b/build/775.vcxproj
@@ -115,7 +115,7 @@
false
MultiThreadedDebug
.\..\debug/775.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/776mod.vcxproj b/build/776mod.vcxproj
index 8a1e2ba8d..1b6165a3a 100644
--- a/build/776mod.vcxproj
+++ b/build/776mod.vcxproj
@@ -69,7 +69,7 @@
false
MultiThreadedDebug
.\..\debug/776mod.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/777.vcxproj b/build/777.vcxproj
index 4d156a57c..a08955c45 100644
--- a/build/777.vcxproj
+++ b/build/777.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/AgaLib.vcxproj b/build/AgaLib.vcxproj
index 4c5bd7dbc..13ee39507 100644
--- a/build/AgaLib.vcxproj
+++ b/build/AgaLib.vcxproj
@@ -52,7 +52,7 @@
..\src\xvaga;..\src\xi;..\src\gfm;..\src\include;..\src\xvtdb;..\src\xvturl
_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/AgaLib.vcxproj.user b/build/AgaLib.vcxproj.user
new file mode 100644
index 000000000..be2507870
--- /dev/null
+++ b/build/AgaLib.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/build/Authoriz.vcxproj b/build/Authoriz.vcxproj
index 905eed579..c641f9dc2 100644
--- a/build/Authoriz.vcxproj
+++ b/build/Authoriz.vcxproj
@@ -139,7 +139,7 @@
false
MultiThreadedDebugDLL
.\..\Debug\DebugServers/Authoriz.pch
- true
+
Level3
true
EditAndContinue
@@ -185,7 +185,7 @@
false
MultiThreadedDebug
..\Debug/DebugServers/Authoriz.pch
- true
+
Level4
true
ProgramDatabase
diff --git a/build/Ba1.vcxproj b/build/Ba1.vcxproj
index 3da061cc4..48c38ea90 100644
--- a/build/Ba1.vcxproj
+++ b/build/Ba1.vcxproj
@@ -66,7 +66,7 @@
..\src\include;..\src\xvaga;..\src\xi;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
EditAndContinue
$(IntDir)$(TargetName).pdb
diff --git a/build/Ba2.vcxproj b/build/Ba2.vcxproj
index 4a4c8d194..67c7c14f6 100644
--- a/build/Ba2.vcxproj
+++ b/build/Ba2.vcxproj
@@ -118,7 +118,7 @@
Disabled
- ..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)
+ ..\src\include;..\src\xvaga;..\src\xvtdb;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
false
diff --git a/build/Ba3.vcxproj b/build/Ba3.vcxproj
index 2afa87b3d..7772fe523 100644
--- a/build/Ba3.vcxproj
+++ b/build/Ba3.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Ba4.vcxproj b/build/Ba4.vcxproj
index 9d76f5721..2f9eff4d9 100644
--- a/build/Ba4.vcxproj
+++ b/build/Ba4.vcxproj
@@ -118,7 +118,7 @@
..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Ba5.vcxproj b/build/Ba5.vcxproj
index 004292bdf..cb74ebd7e 100644
--- a/build/Ba5.vcxproj
+++ b/build/Ba5.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;DBG;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Ba6.vcxproj b/build/Ba6.vcxproj
index f1cddf912..1d8f7bc84 100644
--- a/build/Ba6.vcxproj
+++ b/build/Ba6.vcxproj
@@ -67,7 +67,7 @@
_DEBUG;WIN32;DBG;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Ba7.vcxproj b/build/Ba7.vcxproj
index 5bca9905b..cf3329273 100644
--- a/build/Ba7.vcxproj
+++ b/build/Ba7.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Bacnv.vcxproj b/build/Bacnv.vcxproj
index 0241fd260..067253d82 100644
--- a/build/Bacnv.vcxproj
+++ b/build/Bacnv.vcxproj
@@ -121,7 +121,7 @@
_DEBUG;WIN32;DBG;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/Bainst.vcxproj b/build/Bainst.vcxproj
index b011a6da0..bbf237ac2 100644
--- a/build/Bainst.vcxproj
+++ b/build/Bainst.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/Cacnv.vcxproj b/build/Cacnv.vcxproj
index 9549be22d..9b7156acc 100644
--- a/build/Cacnv.vcxproj
+++ b/build/Cacnv.vcxproj
@@ -121,7 +121,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/Cb6.vcxproj b/build/Cb6.vcxproj
index 3e08cf61e..2949beb0d 100644
--- a/build/Cb6.vcxproj
+++ b/build/Cb6.vcxproj
@@ -111,7 +111,7 @@
Disabled
WIN32;_DEBUG;_WINDOWS;S4DLL_BUILD;CB6;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Cg0.vcxproj b/build/Cg0.vcxproj
index b3ae8f156..44da7cafe 100644
--- a/build/Cg0.vcxproj
+++ b/build/Cg0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Cg0.vcxproj.user b/build/Cg0.vcxproj.user
new file mode 100644
index 000000000..be2507870
--- /dev/null
+++ b/build/Cg0.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/build/Cg1.vcxproj b/build/Cg1.vcxproj
index 8da2e3359..72d8d32a5 100644
--- a/build/Cg1.vcxproj
+++ b/build/Cg1.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Cg1.vcxproj.user b/build/Cg1.vcxproj.user
new file mode 100644
index 000000000..d765de8c6
--- /dev/null
+++ b/build/Cg1.vcxproj.user
@@ -0,0 +1,8 @@
+
+
+
+ -2 U -force u/ADMIN
+ $(TargetDir)
+ WindowsLocalDebugger
+
+
\ No newline at end of file
diff --git a/build/Cg2.vcxproj b/build/Cg2.vcxproj
index 24c58b698..423b6b38b 100644
--- a/build/Cg2.vcxproj
+++ b/build/Cg2.vcxproj
@@ -118,7 +118,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
@@ -272,6 +272,7 @@
true
+
@@ -286,6 +287,7 @@
+
diff --git a/build/Cg2.vcxproj.filters b/build/Cg2.vcxproj.filters
index 696c0ee00..fba685695 100644
--- a/build/Cg2.vcxproj.filters
+++ b/build/Cg2.vcxproj.filters
@@ -122,6 +122,9 @@
Masks
+
+ Masks
+
@@ -169,6 +172,9 @@
Headers
+
+ Headers
+
diff --git a/build/Cg2.vcxproj.user b/build/Cg2.vcxproj.user
new file mode 100644
index 000000000..0f90a03cb
--- /dev/null
+++ b/build/Cg2.vcxproj.user
@@ -0,0 +1,8 @@
+
+
+
+ -0 /uADMIN
+ $(TargetDir)
+ WindowsLocalDebugger
+
+
\ No newline at end of file
diff --git a/build/Cg3.vcxproj b/build/Cg3.vcxproj
index 8ca858140..ee959e9d0 100644
--- a/build/Cg3.vcxproj
+++ b/build/Cg3.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Cg4.vcxproj b/build/Cg4.vcxproj
index e51819cd7..3ccb71b7c 100644
--- a/build/Cg4.vcxproj
+++ b/build/Cg4.vcxproj
@@ -118,7 +118,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Cg5.vcxproj b/build/Cg5.vcxproj
index 13a40f56b..cfcfa8680 100644
--- a/build/Cg5.vcxproj
+++ b/build/Cg5.vcxproj
@@ -72,7 +72,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
EditAndContinue
diff --git a/build/Cg6.vcxproj b/build/Cg6.vcxproj
index e90aee710..34d037049 100644
--- a/build/Cg6.vcxproj
+++ b/build/Cg6.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;DBG;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Cg7.vcxproj b/build/Cg7.vcxproj
index e7fd3f740..c02ac9549 100644
--- a/build/Cg7.vcxproj
+++ b/build/Cg7.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Diction.vcxproj b/build/Diction.vcxproj
index 4f8ab9202..3a87f1257 100644
--- a/build/Diction.vcxproj
+++ b/build/Diction.vcxproj
@@ -224,7 +224,7 @@
false
MultiThreadedDebug
..\Debug/DebugServers/Diction.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/Ef0.vcxproj b/build/Ef0.vcxproj
index d48c83ad9..4c7ba5e40 100644
--- a/build/Ef0.vcxproj
+++ b/build/Ef0.vcxproj
@@ -112,7 +112,7 @@
false
MultiThreadedDebug
.\../debug/Ef0.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/Ef1.vcxproj b/build/Ef1.vcxproj
index 7dafa824f..7a439127c 100644
--- a/build/Ef1.vcxproj
+++ b/build/Ef1.vcxproj
@@ -112,7 +112,7 @@
false
MultiThreadedDebug
.\../debug/ef1.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/In0.vcxproj b/build/In0.vcxproj
index 9aa5d8965..d44f88595 100644
--- a/build/In0.vcxproj
+++ b/build/In0.vcxproj
@@ -66,7 +66,7 @@
.\../debug/
.\../debug/
.\../debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/Lurch.vcxproj b/build/Lurch.vcxproj
index f09b329fd..e78aea3fa 100644
--- a/build/Lurch.vcxproj
+++ b/build/Lurch.vcxproj
@@ -94,7 +94,7 @@
false
MultiThreadedDebugDLL
.\..\Debug\DebugServers/Lurch.pch
- true
+
Level3
true
EditAndContinue
@@ -140,7 +140,7 @@
false
MultiThreadedDebug
..\Debug/DebugServers/Lurch.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/Or1.vcxproj b/build/Or1.vcxproj
index 76aee2464..0fda73112 100644
--- a/build/Or1.vcxproj
+++ b/build/Or1.vcxproj
@@ -118,7 +118,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Postman.vcxproj b/build/Postman.vcxproj
index b46f48fe4..c8609763c 100644
--- a/build/Postman.vcxproj
+++ b/build/Postman.vcxproj
@@ -137,7 +137,7 @@
false
MultiThreadedDebugDLL
.\..\Debug\DebugServers/Postman.pch
- true
+
Level3
true
EditAndContinue
@@ -183,7 +183,7 @@
false
MultiThreadedDebug
..\Debug/DebugServers/Postman.pch
- true
+
Level4
true
ProgramDatabase
diff --git a/build/Sc0.vcxproj b/build/Sc0.vcxproj
index fec05284d..aec1a859b 100644
--- a/build/Sc0.vcxproj
+++ b/build/Sc0.vcxproj
@@ -124,7 +124,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Sc1.vcxproj b/build/Sc1.vcxproj
index 0a4dd8cc9..d4796d09a 100644
--- a/build/Sc1.vcxproj
+++ b/build/Sc1.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Sc2.vcxproj b/build/Sc2.vcxproj
index e987cfa72..4a07b9bd0 100644
--- a/build/Sc2.vcxproj
+++ b/build/Sc2.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/Sc3.vcxproj b/build/Sc3.vcxproj
index 0fd7d724a..dea6c0db4 100644
--- a/build/Sc3.vcxproj
+++ b/build/Sc3.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ab0.vcxproj b/build/ab0.vcxproj
index 3c7e0fbfd..dadeecc65 100644
--- a/build/ab0.vcxproj
+++ b/build/ab0.vcxproj
@@ -121,7 +121,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ab1.vcxproj b/build/ab1.vcxproj
index 2923f110f..5b24a8479 100644
--- a/build/ab1.vcxproj
+++ b/build/ab1.vcxproj
@@ -69,7 +69,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ab2.vcxproj b/build/ab2.vcxproj
index 74228deff..c06c3906f 100644
--- a/build/ab2.vcxproj
+++ b/build/ab2.vcxproj
@@ -69,7 +69,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ab3.vcxproj b/build/ab3.vcxproj
index aabff7dc4..d78261e98 100644
--- a/build/ab3.vcxproj
+++ b/build/ab3.vcxproj
@@ -119,7 +119,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at0.vcxproj b/build/at0.vcxproj
index 2b9624142..f6acfa998 100644
--- a/build/at0.vcxproj
+++ b/build/at0.vcxproj
@@ -115,7 +115,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at1.vcxproj b/build/at1.vcxproj
index 8ae34de56..bc495e443 100644
--- a/build/at1.vcxproj
+++ b/build/at1.vcxproj
@@ -115,7 +115,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at2.vcxproj b/build/at2.vcxproj
index 2466f7d50..75423c8b9 100644
--- a/build/at2.vcxproj
+++ b/build/at2.vcxproj
@@ -65,7 +65,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at3.vcxproj b/build/at3.vcxproj
index 5a7ad26a5..335d52cc4 100644
--- a/build/at3.vcxproj
+++ b/build/at3.vcxproj
@@ -115,7 +115,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at4.vcxproj b/build/at4.vcxproj
index 93f865c8f..c8ac2bc4f 100644
--- a/build/at4.vcxproj
+++ b/build/at4.vcxproj
@@ -115,7 +115,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at5.vcxproj b/build/at5.vcxproj
index 8a44ac441..b8e9c883b 100644
--- a/build/at5.vcxproj
+++ b/build/at5.vcxproj
@@ -115,7 +115,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at6.vcxproj b/build/at6.vcxproj
index a000dae71..48e06bd4b 100644
--- a/build/at6.vcxproj
+++ b/build/at6.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
@@ -119,7 +119,7 @@
MultiThreaded
true
$(IntDir)$(TargetName).pch
- true
+
Level3
true
diff --git a/build/at7.vcxproj b/build/at7.vcxproj
index 48ca7ad3b..94ae97d8a 100644
--- a/build/at7.vcxproj
+++ b/build/at7.vcxproj
@@ -115,7 +115,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at8.vcxproj b/build/at8.vcxproj
index 02ef9f69a..8e366c0a7 100644
--- a/build/at8.vcxproj
+++ b/build/at8.vcxproj
@@ -65,7 +65,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/at9.vcxproj b/build/at9.vcxproj
index 251b9bed9..d695dc3b8 100644
--- a/build/at9.vcxproj
+++ b/build/at9.vcxproj
@@ -116,7 +116,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ba0.vcxproj b/build/ba0.vcxproj
index 379045d0d..b1b769827 100644
--- a/build/ba0.vcxproj
+++ b/build/ba0.vcxproj
@@ -70,7 +70,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
MultiThreadedDebug
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
EditAndContinue
diff --git a/build/ba8.vcxproj b/build/ba8.vcxproj
index 1a591ff84..1a97dbbd0 100644
--- a/build/ba8.vcxproj
+++ b/build/ba8.vcxproj
@@ -122,7 +122,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/ba9.vcxproj b/build/ba9.vcxproj
index c8ebd1fdd..b12e6ee5e 100644
--- a/build/ba9.vcxproj
+++ b/build/ba9.vcxproj
@@ -122,7 +122,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/bs0.vcxproj b/build/bs0.vcxproj
index c2ed752fc..67bc5f37c 100644
--- a/build/bs0.vcxproj
+++ b/build/bs0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ca0.vcxproj b/build/ca0.vcxproj
index f181b6bf4..c634fa5cf 100644
--- a/build/ca0.vcxproj
+++ b/build/ca0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/ca1.vcxproj b/build/ca1.vcxproj
index ff622012d..c0a46b0fe 100644
--- a/build/ca1.vcxproj
+++ b/build/ca1.vcxproj
@@ -126,7 +126,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ca2.vcxproj b/build/ca2.vcxproj
index 604a67e46..ea063c568 100644
--- a/build/ca2.vcxproj
+++ b/build/ca2.vcxproj
@@ -117,7 +117,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ca3.vcxproj b/build/ca3.vcxproj
index fd6f1d4cb..3a31711f0 100644
--- a/build/ca3.vcxproj
+++ b/build/ca3.vcxproj
@@ -71,7 +71,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ca9.vcxproj b/build/ca9.vcxproj
index 8d1c62981..7e7362af7 100644
--- a/build/ca9.vcxproj
+++ b/build/ca9.vcxproj
@@ -120,7 +120,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ce0.vcxproj b/build/ce0.vcxproj
index da1152093..a19494d14 100644
--- a/build/ce0.vcxproj
+++ b/build/ce0.vcxproj
@@ -71,7 +71,7 @@
$(IntDir)
- true
+
Level3
true
EditAndContinue
diff --git a/build/ce1.vcxproj b/build/ce1.vcxproj
index 4c510ee15..268f039f4 100644
--- a/build/ce1.vcxproj
+++ b/build/ce1.vcxproj
@@ -123,7 +123,7 @@
$(IntDir)
- true
+
Level3
true
EditAndContinue
diff --git a/build/ce2.vcxproj b/build/ce2.vcxproj
index c55846c7c..d949e3317 100644
--- a/build/ce2.vcxproj
+++ b/build/ce2.vcxproj
@@ -72,7 +72,7 @@
$(IntDir)
- true
+
Level3
true
EditAndContinue
diff --git a/build/ce3.vcxproj b/build/ce3.vcxproj
index a131649a6..4336b1a68 100644
--- a/build/ce3.vcxproj
+++ b/build/ce3.vcxproj
@@ -122,7 +122,7 @@
$(IntDir)
- true
+
Level3
true
EditAndContinue
diff --git a/build/ce4.vcxproj b/build/ce4.vcxproj
index 4e5a61340..8415ddc5e 100644
--- a/build/ce4.vcxproj
+++ b/build/ce4.vcxproj
@@ -72,7 +72,7 @@
$(IntDir)
- true
+
Level3
true
EditAndContinue
diff --git a/build/ci0.vcxproj b/build/ci0.vcxproj
index 07b0c5593..240d68236 100644
--- a/build/ci0.vcxproj
+++ b/build/ci0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/ci1.vcxproj b/build/ci1.vcxproj
index 58c3dd3f6..961a44a0a 100644
--- a/build/ci1.vcxproj
+++ b/build/ci1.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/ci2.vcxproj b/build/ci2.vcxproj
index b55503f6d..c54afec11 100644
--- a/build/ci2.vcxproj
+++ b/build/ci2.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/coffee.vcxproj b/build/coffee.vcxproj
index 89201be3c..92a4387cf 100644
--- a/build/coffee.vcxproj
+++ b/build/coffee.vcxproj
@@ -134,7 +134,7 @@
false
MultiThreadedDebug
..\Debug/DebugServers/coffee.pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ct0.vcxproj b/build/ct0.vcxproj
index e2cb1b831..79bc35e6f 100644
--- a/build/ct0.vcxproj
+++ b/build/ct0.vcxproj
@@ -64,7 +64,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/db0.vcxproj b/build/db0.vcxproj
index a8997e457..725dec23d 100644
--- a/build/db0.vcxproj
+++ b/build/db0.vcxproj
@@ -117,7 +117,7 @@
_DEBUG;WIN32;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/db1.vcxproj b/build/db1.vcxproj
index b7e9c43d7..ab64c938b 100644
--- a/build/db1.vcxproj
+++ b/build/db1.vcxproj
@@ -115,7 +115,7 @@
_DEBUG;WIN32;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/db2.vcxproj b/build/db2.vcxproj
index 7eca4c68e..268b7cf51 100644
--- a/build/db2.vcxproj
+++ b/build/db2.vcxproj
@@ -65,7 +65,7 @@
_DEBUG;WIN32;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/fd.vcxproj b/build/fd.vcxproj
index 889e4f72f..b0f0764ef 100644
--- a/build/fd.vcxproj
+++ b/build/fd.vcxproj
@@ -64,7 +64,7 @@
ProgramDatabase
true
false
- true
+
Windows
diff --git a/build/fe.vcxproj b/build/fe.vcxproj
index 97cf9d97d..2624e357b 100644
--- a/build/fe.vcxproj
+++ b/build/fe.vcxproj
@@ -67,7 +67,7 @@
ProgramDatabase
true
false
- true
+
Windows
diff --git a/build/fp0.vcxproj b/build/fp0.vcxproj
index e1ca8d148..ad7845022 100644
--- a/build/fp0.vcxproj
+++ b/build/fp0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/fp0.vcxproj.user b/build/fp0.vcxproj.user
new file mode 100644
index 000000000..be5d31880
--- /dev/null
+++ b/build/fp0.vcxproj.user
@@ -0,0 +1,8 @@
+
+
+
+ -2 /uADMIN
+ $(TargetDir)
+ WindowsLocalDebugger
+
+
\ No newline at end of file
diff --git a/build/fp1.vcxproj b/build/fp1.vcxproj
index 2ce6f2ac4..c536d3413 100644
--- a/build/fp1.vcxproj
+++ b/build/fp1.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/fp1.vcxproj.user b/build/fp1.vcxproj.user
new file mode 100644
index 000000000..be2507870
--- /dev/null
+++ b/build/fp1.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/build/fplib.vcxproj b/build/fplib.vcxproj
index 1aa164e01..fd2fde1cd 100644
--- a/build/fplib.vcxproj
+++ b/build/fplib.vcxproj
@@ -72,7 +72,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/fplib.vcxproj.user b/build/fplib.vcxproj.user
new file mode 100644
index 000000000..be2507870
--- /dev/null
+++ b/build/fplib.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/build/gfm.vcxproj b/build/gfm.vcxproj
index 86a166d47..0c75532b4 100644
--- a/build/gfm.vcxproj
+++ b/build/gfm.vcxproj
@@ -71,7 +71,7 @@
EnableFastChecks
MultiThreadedDebug
true
- true
+
Level3
true
EditAndContinue
diff --git a/build/gv0.vcxproj b/build/gv0.vcxproj
index d6f2fdf36..e8ea1bcb4 100644
--- a/build/gv0.vcxproj
+++ b/build/gv0.vcxproj
@@ -116,7 +116,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
EditAndContinue
diff --git a/build/ha0.vcxproj b/build/ha0.vcxproj
index f3d21deac..9e3216520 100644
--- a/build/ha0.vcxproj
+++ b/build/ha0.vcxproj
@@ -117,7 +117,7 @@
$(IntDir)\
$(IntDir)\
$(IntDir)\
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ha1.vcxproj b/build/ha1.vcxproj
index 646dfccb7..4ab892416 100644
--- a/build/ha1.vcxproj
+++ b/build/ha1.vcxproj
@@ -68,7 +68,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ha2.vcxproj b/build/ha2.vcxproj
index 34420c2fb..77e7c5b4f 100644
--- a/build/ha2.vcxproj
+++ b/build/ha2.vcxproj
@@ -120,7 +120,7 @@
$(IntDir)\
$(IntDir)\
$(IntDir)\
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ha3.vcxproj b/build/ha3.vcxproj
index 30098e1cc..5989cfc15 100644
--- a/build/ha3.vcxproj
+++ b/build/ha3.vcxproj
@@ -120,7 +120,7 @@
$(IntDir)\
$(IntDir)\
$(IntDir)\
- true
+
Level3
true
ProgramDatabase
diff --git a/build/hacnv.vcxproj b/build/hacnv.vcxproj
index 4cf05e3e5..b020fe098 100644
--- a/build/hacnv.vcxproj
+++ b/build/hacnv.vcxproj
@@ -116,7 +116,7 @@
$(IntDir)\
$(IntDir)\
$(IntDir)\
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ic0.vcxproj b/build/ic0.vcxproj
index 86d9449ce..ea840c746 100644
--- a/build/ic0.vcxproj
+++ b/build/ic0.vcxproj
@@ -70,7 +70,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/li0.vcxproj b/build/li0.vcxproj
index 305129445..ea5b4791b 100644
--- a/build/li0.vcxproj
+++ b/build/li0.vcxproj
@@ -70,7 +70,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/lilib.vcxproj b/build/lilib.vcxproj
index 14f6d362c..f3ffdcfe5 100644
--- a/build/lilib.vcxproj
+++ b/build/lilib.vcxproj
@@ -72,7 +72,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/lv0.vcxproj b/build/lv0.vcxproj
index 137a9c4c7..41c17ad39 100644
--- a/build/lv0.vcxproj
+++ b/build/lv0.vcxproj
@@ -119,7 +119,7 @@
false
MultiThreadedDebug
$(IntDir)$(TargetName).pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/lv1.vcxproj b/build/lv1.vcxproj
index cdde04188..dc6336412 100644
--- a/build/lv1.vcxproj
+++ b/build/lv1.vcxproj
@@ -121,7 +121,7 @@
false
MultiThreadedDebug
$(IntDir)$(TargetName).pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/lv2.vcxproj b/build/lv2.vcxproj
index 010850bbe..91a6b9c2f 100644
--- a/build/lv2.vcxproj
+++ b/build/lv2.vcxproj
@@ -118,7 +118,7 @@
false
MultiThreadedDebug
$(IntDir)$(TargetName).pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/lv3.vcxproj b/build/lv3.vcxproj
index dfccc7d5b..5f773b397 100644
--- a/build/lv3.vcxproj
+++ b/build/lv3.vcxproj
@@ -119,7 +119,7 @@
false
MultiThreadedDebug
$(IntDir)$(TargetName).pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/lv4.vcxproj b/build/lv4.vcxproj
index 5c057e5ee..72a884b4e 100644
--- a/build/lv4.vcxproj
+++ b/build/lv4.vcxproj
@@ -122,7 +122,7 @@
false
MultiThreadedDebug
$(IntDir)$(TargetName).pch
- true
+
Level3
true
ProgramDatabase
diff --git a/build/mg0.vcxproj b/build/mg0.vcxproj
index 7deccd447..8672c1a2d 100644
--- a/build/mg0.vcxproj
+++ b/build/mg0.vcxproj
@@ -72,7 +72,7 @@
.\..\debug/
$(IntDir)
.\..\debug/
- true
+
Level3
true
EditAndContinue
diff --git a/build/mg1.vcxproj b/build/mg1.vcxproj
index b75e8553f..f8b71c191 100644
--- a/build/mg1.vcxproj
+++ b/build/mg1.vcxproj
@@ -119,7 +119,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/mg3.vcxproj b/build/mg3.vcxproj
index 77e966874..9186bd1ba 100644
--- a/build/mg3.vcxproj
+++ b/build/mg3.vcxproj
@@ -118,7 +118,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/mg4.vcxproj b/build/mg4.vcxproj
index efc2d20ea..7329fe013 100644
--- a/build/mg4.vcxproj
+++ b/build/mg4.vcxproj
@@ -123,7 +123,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/mr0.vcxproj b/build/mr0.vcxproj
index 88ba8ece2..49e111518 100644
--- a/build/mr0.vcxproj
+++ b/build/mr0.vcxproj
@@ -66,7 +66,7 @@
..\src\xi;..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/mr1.vcxproj b/build/mr1.vcxproj
index 9788dc983..7a2102319 100644
--- a/build/mr1.vcxproj
+++ b/build/mr1.vcxproj
@@ -113,7 +113,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/mr2.vcxproj b/build/mr2.vcxproj
index 5b06dbb1b..aa45e1736 100644
--- a/build/mr2.vcxproj
+++ b/build/mr2.vcxproj
@@ -67,7 +67,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/np0.vcxproj b/build/np0.vcxproj
index f752d9ba7..68b1f4eef 100644
--- a/build/np0.vcxproj
+++ b/build/np0.vcxproj
@@ -122,7 +122,7 @@
.\../debug/
$(IntDir)
.\../debug/
- true
+
Level3
true
EditAndContinue
diff --git a/build/pa0.vcxproj b/build/pa0.vcxproj
index c26ba38c1..ee98baeee 100644
--- a/build/pa0.vcxproj
+++ b/build/pa0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd0001.vcxproj b/build/pd0001.vcxproj
index 552f58d55..cacd998db 100644
--- a/build/pd0001.vcxproj
+++ b/build/pd0001.vcxproj
@@ -67,7 +67,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd0350.vcxproj b/build/pd0350.vcxproj
index acc5502a4..dc099bfcb 100644
--- a/build/pd0350.vcxproj
+++ b/build/pd0350.vcxproj
@@ -66,7 +66,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd0610.vcxproj b/build/pd0610.vcxproj
index cfadce367..37387554e 100644
--- a/build/pd0610.vcxproj
+++ b/build/pd0610.vcxproj
@@ -112,7 +112,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd0666.vcxproj b/build/pd0666.vcxproj
index c61eb11b7..13e89be14 100644
--- a/build/pd0666.vcxproj
+++ b/build/pd0666.vcxproj
@@ -66,7 +66,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd0777.vcxproj b/build/pd0777.vcxproj
index 8418bd97d..1c8267101 100644
--- a/build/pd0777.vcxproj
+++ b/build/pd0777.vcxproj
@@ -113,7 +113,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd1579.vcxproj b/build/pd1579.vcxproj
index e5c5c5c61..f29a6f7a3 100644
--- a/build/pd1579.vcxproj
+++ b/build/pd1579.vcxproj
@@ -109,7 +109,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd1890.vcxproj b/build/pd1890.vcxproj
index eca247eae..47f42c8fb 100644
--- a/build/pd1890.vcxproj
+++ b/build/pd1890.vcxproj
@@ -66,7 +66,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd5317.vcxproj b/build/pd5317.vcxproj
index 9821b8fa9..8e2abdac0 100644
--- a/build/pd5317.vcxproj
+++ b/build/pd5317.vcxproj
@@ -66,7 +66,7 @@
..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd6030.vcxproj b/build/pd6030.vcxproj
index a8980ecd3..b51e3b8ad 100644
--- a/build/pd6030.vcxproj
+++ b/build/pd6030.vcxproj
@@ -111,7 +111,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd6142.vcxproj b/build/pd6142.vcxproj
index 44ae75cbe..dcbc51bef 100644
--- a/build/pd6142.vcxproj
+++ b/build/pd6142.vcxproj
@@ -67,7 +67,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd6292.vcxproj b/build/pd6292.vcxproj
index 25c6b10c3..ececb3475 100644
--- a/build/pd6292.vcxproj
+++ b/build/pd6292.vcxproj
@@ -68,7 +68,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd6342.vcxproj b/build/pd6342.vcxproj
index cfb446c49..c57570f5f 100644
--- a/build/pd6342.vcxproj
+++ b/build/pd6342.vcxproj
@@ -110,7 +110,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pd6411.vcxproj b/build/pd6411.vcxproj
index 065b984b9..30cd6bd1f 100644
--- a/build/pd6411.vcxproj
+++ b/build/pd6411.vcxproj
@@ -67,7 +67,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pdflib_dll.vcxproj b/build/pdflib_dll.vcxproj
index 9817f2aeb..8827b62dd 100644
--- a/build/pdflib_dll.vcxproj
+++ b/build/pdflib_dll.vcxproj
@@ -68,7 +68,7 @@
WIN32;_DEBUG;_WINDOWS;_MT;PDFLIB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/pe0.vcxproj b/build/pe0.vcxproj
index 865821bd6..b3cbe185a 100644
--- a/build/pe0.vcxproj
+++ b/build/pe0.vcxproj
@@ -112,7 +112,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pe1.vcxproj b/build/pe1.vcxproj
index 0021f3f47..f6e421feb 100644
--- a/build/pe1.vcxproj
+++ b/build/pe1.vcxproj
@@ -109,7 +109,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pg0001.vcxproj b/build/pg0001.vcxproj
index 9374a028e..c3da22b77 100644
--- a/build/pg0001.vcxproj
+++ b/build/pg0001.vcxproj
@@ -67,7 +67,7 @@
..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
@@ -120,7 +120,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
diff --git a/build/pg0067.vcxproj b/build/pg0067.vcxproj
index f597bd2a0..7558a3a4f 100644
--- a/build/pg0067.vcxproj
+++ b/build/pg0067.vcxproj
@@ -70,7 +70,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
@@ -120,7 +120,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
diff --git a/build/pg0068.vcxproj b/build/pg0068.vcxproj
index 631bb014c..7a0e80d51 100644
--- a/build/pg0068.vcxproj
+++ b/build/pg0068.vcxproj
@@ -71,7 +71,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
@@ -117,7 +117,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pg0069.vcxproj b/build/pg0069.vcxproj
index 05808a0d2..3f9d1db0b 100644
--- a/build/pg0069.vcxproj
+++ b/build/pg0069.vcxproj
@@ -71,7 +71,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
@@ -117,7 +117,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pg0388.vcxproj b/build/pg0388.vcxproj
index a61cfd591..2eae33f79 100644
--- a/build/pg0388.vcxproj
+++ b/build/pg0388.vcxproj
@@ -69,7 +69,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
@@ -119,7 +119,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
diff --git a/build/pi0001.vcxproj b/build/pi0001.vcxproj
index c5ded3c5e..c8943483f 100644
--- a/build/pi0001.vcxproj
+++ b/build/pi0001.vcxproj
@@ -68,7 +68,7 @@
..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
@@ -121,7 +121,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
diff --git a/build/pi0002.vcxproj b/build/pi0002.vcxproj
index 79e4bbbb1..3eaf3bbf0 100644
--- a/build/pi0002.vcxproj
+++ b/build/pi0002.vcxproj
@@ -68,7 +68,7 @@
..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
@@ -121,7 +121,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
diff --git a/build/pl0001.vcxproj b/build/pl0001.vcxproj
index 2b1e648d9..bfa715189 100644
--- a/build/pl0001.vcxproj
+++ b/build/pl0001.vcxproj
@@ -119,7 +119,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pl0002.vcxproj b/build/pl0002.vcxproj
index 5df6a685e..28676a4cf 100644
--- a/build/pl0002.vcxproj
+++ b/build/pl0002.vcxproj
@@ -69,7 +69,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
@@ -113,7 +113,7 @@
true
MultiThreaded
true
- true
+
Level3
true
diff --git a/build/pr0.vcxproj b/build/pr0.vcxproj
index 82b653374..e93fa23ee 100644
--- a/build/pr0.vcxproj
+++ b/build/pr0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pr1.vcxproj b/build/pr1.vcxproj
index ec9a4f486..6991398ac 100644
--- a/build/pr1.vcxproj
+++ b/build/pr1.vcxproj
@@ -114,7 +114,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0017.vcxproj b/build/ps0017.vcxproj
index d51d42283..fbe014b21 100644
--- a/build/ps0017.vcxproj
+++ b/build/ps0017.vcxproj
@@ -116,7 +116,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0077.vcxproj b/build/ps0077.vcxproj
index e82b982d2..f0469ae2d 100644
--- a/build/ps0077.vcxproj
+++ b/build/ps0077.vcxproj
@@ -68,7 +68,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0099.vcxproj b/build/ps0099.vcxproj
index 0c0d03c9f..198b85dee 100644
--- a/build/ps0099.vcxproj
+++ b/build/ps0099.vcxproj
@@ -114,7 +114,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0330.vcxproj b/build/ps0330.vcxproj
index 1b02e5fe8..f582a764d 100644
--- a/build/ps0330.vcxproj
+++ b/build/ps0330.vcxproj
@@ -68,7 +68,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0398.vcxproj b/build/ps0398.vcxproj
index 8a280b70b..bfbe9d92b 100644
--- a/build/ps0398.vcxproj
+++ b/build/ps0398.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
@@ -115,7 +115,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
diff --git a/build/ps0430.vcxproj b/build/ps0430.vcxproj
index 53906f472..1cc7208e8 100644
--- a/build/ps0430.vcxproj
+++ b/build/ps0430.vcxproj
@@ -113,7 +113,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0431.vcxproj b/build/ps0431.vcxproj
index 8c2809d06..d4844224a 100644
--- a/build/ps0431.vcxproj
+++ b/build/ps0431.vcxproj
@@ -108,7 +108,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0544.vcxproj b/build/ps0544.vcxproj
index 0855c015d..5d1c731fc 100644
--- a/build/ps0544.vcxproj
+++ b/build/ps0544.vcxproj
@@ -113,7 +113,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0713.vcxproj b/build/ps0713.vcxproj
index 8672d196c..9238ace4b 100644
--- a/build/ps0713.vcxproj
+++ b/build/ps0713.vcxproj
@@ -67,7 +67,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0816.vcxproj b/build/ps0816.vcxproj
index 90a13f8a8..11dd0f294 100644
--- a/build/ps0816.vcxproj
+++ b/build/ps0816.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0830.vcxproj b/build/ps0830.vcxproj
index 22218a9a2..c400463ad 100644
--- a/build/ps0830.vcxproj
+++ b/build/ps0830.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0872.vcxproj b/build/ps0872.vcxproj
index cdb59b84c..8e19f4942 100644
--- a/build/ps0872.vcxproj
+++ b/build/ps0872.vcxproj
@@ -114,7 +114,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0883.vcxproj b/build/ps0883.vcxproj
index 9a02021be..f4c2536fa 100644
--- a/build/ps0883.vcxproj
+++ b/build/ps0883.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0913 .vcxproj b/build/ps0913 .vcxproj
index 2226e80dd..fd261d9b8 100644
--- a/build/ps0913 .vcxproj
+++ b/build/ps0913 .vcxproj
@@ -67,7 +67,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0920.vcxproj b/build/ps0920.vcxproj
index ad6c5fab9..e93fc4115 100644
--- a/build/ps0920.vcxproj
+++ b/build/ps0920.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0925.vcxproj b/build/ps0925.vcxproj
index 19fe47252..2817f980f 100644
--- a/build/ps0925.vcxproj
+++ b/build/ps0925.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps0982 .vcxproj b/build/ps0982 .vcxproj
index 2c16d1301..fd30e35a2 100644
--- a/build/ps0982 .vcxproj
+++ b/build/ps0982 .vcxproj
@@ -67,7 +67,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps1001.vcxproj b/build/ps1001.vcxproj
index e23a15e7a..1ef63e58b 100644
--- a/build/ps1001.vcxproj
+++ b/build/ps1001.vcxproj
@@ -67,7 +67,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps1004.vcxproj b/build/ps1004.vcxproj
index f542b5dc8..4d79c82fb 100644
--- a/build/ps1004.vcxproj
+++ b/build/ps1004.vcxproj
@@ -116,7 +116,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps1100.vcxproj b/build/ps1100.vcxproj
index cfb86ce70..c3cb7497f 100644
--- a/build/ps1100.vcxproj
+++ b/build/ps1100.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ps1104.vcxproj b/build/ps1104.vcxproj
index 030375231..dd93bed32 100644
--- a/build/ps1104.vcxproj
+++ b/build/ps1104.vcxproj
@@ -66,7 +66,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pt0001.vcxproj b/build/pt0001.vcxproj
index d07fd093b..073cd1cd0 100644
--- a/build/pt0001.vcxproj
+++ b/build/pt0001.vcxproj
@@ -71,7 +71,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
@@ -117,7 +117,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pt0003.vcxproj b/build/pt0003.vcxproj
index 19186de96..9f192eb8d 100644
--- a/build/pt0003.vcxproj
+++ b/build/pt0003.vcxproj
@@ -72,7 +72,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
@@ -118,7 +118,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/pt0195.vcxproj b/build/pt0195.vcxproj
index 50f4486fd..6b9bd9f15 100644
--- a/build/pt0195.vcxproj
+++ b/build/pt0195.vcxproj
@@ -69,7 +69,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
@@ -119,7 +119,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
diff --git a/build/ri0.vcxproj b/build/ri0.vcxproj
index 51e450625..43f5d2862 100644
--- a/build/ri0.vcxproj
+++ b/build/ri0.vcxproj
@@ -69,7 +69,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ri1.vcxproj b/build/ri1.vcxproj
index 619ba1f8a..b522e41a2 100644
--- a/build/ri1.vcxproj
+++ b/build/ri1.vcxproj
@@ -67,7 +67,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/setup.vcxproj b/build/setup.vcxproj
index 44e299397..431d29a28 100644
--- a/build/setup.vcxproj
+++ b/build/setup.vcxproj
@@ -61,7 +61,7 @@
Default
MultiThreadedDebug
NotUsing
- true
+
Level3
ProgramDatabase
true
diff --git a/build/sl0.vcxproj b/build/sl0.vcxproj
index 4c45a343e..67534485a 100644
--- a/build/sl0.vcxproj
+++ b/build/sl0.vcxproj
@@ -65,7 +65,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/sv0.vcxproj b/build/sv0.vcxproj
index 5263a1b47..323f159f5 100644
--- a/build/sv0.vcxproj
+++ b/build/sv0.vcxproj
@@ -70,7 +70,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/sv1.vcxproj b/build/sv1.vcxproj
index c76a1a203..54c3d1133 100644
--- a/build/sv1.vcxproj
+++ b/build/sv1.vcxproj
@@ -74,7 +74,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/sv2.vcxproj b/build/sv2.vcxproj
index 54bf84077..c9baa736b 100644
--- a/build/sv2.vcxproj
+++ b/build/sv2.vcxproj
@@ -113,7 +113,7 @@
$(IntDir)
$(IntDir)
$(IntDir)vc$(PlatformToolsetVersion).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tc0.vcxproj b/build/tc0.vcxproj
index 9b353ce03..49e08b50a 100644
--- a/build/tc0.vcxproj
+++ b/build/tc0.vcxproj
@@ -70,7 +70,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tc1.vcxproj b/build/tc1.vcxproj
index 3dc805b3b..1fd63b350 100644
--- a/build/tc1.vcxproj
+++ b/build/tc1.vcxproj
@@ -113,7 +113,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tc2.vcxproj b/build/tc2.vcxproj
index 6d12ca833..03dbe956e 100644
--- a/build/tc2.vcxproj
+++ b/build/tc2.vcxproj
@@ -113,7 +113,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tc3.vcxproj b/build/tc3.vcxproj
index e924382ee..7294923f3 100644
--- a/build/tc3.vcxproj
+++ b/build/tc3.vcxproj
@@ -113,7 +113,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tc8.vcxproj b/build/tc8.vcxproj
index 6a149adb6..1cd763008 100644
--- a/build/tc8.vcxproj
+++ b/build/tc8.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tc9.vcxproj b/build/tc9.vcxproj
index cf3a9afcf..1eeefbc34 100644
--- a/build/tc9.vcxproj
+++ b/build/tc9.vcxproj
@@ -111,7 +111,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tf0.vcxproj b/build/tf0.vcxproj
index 2f2cdba1f..a4f943021 100644
--- a/build/tf0.vcxproj
+++ b/build/tf0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tf0.vcxproj.user b/build/tf0.vcxproj.user
new file mode 100644
index 000000000..0f90a03cb
--- /dev/null
+++ b/build/tf0.vcxproj.user
@@ -0,0 +1,8 @@
+
+
+
+ -0 /uADMIN
+ $(TargetDir)
+ WindowsLocalDebugger
+
+
\ No newline at end of file
diff --git a/build/tflib.vcxproj b/build/tflib.vcxproj
index 78cdb1cdf..10e43cab1 100644
--- a/build/tflib.vcxproj
+++ b/build/tflib.vcxproj
@@ -72,7 +72,7 @@
$(IntDir)
$(IntDir)
$(IntDir)$(TargetName).pdb
- true
+
Level3
true
ProgramDatabase
diff --git a/build/tp0.vcxproj b/build/tp0.vcxproj
index c71f011f3..3075919a7 100644
--- a/build/tp0.vcxproj
+++ b/build/tp0.vcxproj
@@ -68,7 +68,7 @@
.\..\debug/
.\..\debug/
.\..\debug/
- true
+
Level3
true
ProgramDatabase
diff --git a/build/update.vcxproj b/build/update.vcxproj
index f191a806b..e498bf340 100644
--- a/build/update.vcxproj
+++ b/build/update.vcxproj
@@ -54,7 +54,7 @@
MultiThreadedDebug
- true
+
Level3
ProgramDatabase
diff --git a/build/ve0.vcxproj b/build/ve0.vcxproj
index 6a689514f..c8f8f1a8a 100644
--- a/build/ve0.vcxproj
+++ b/build/ve0.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ve0.vcxproj.user b/build/ve0.vcxproj.user
new file mode 100644
index 000000000..0f90a03cb
--- /dev/null
+++ b/build/ve0.vcxproj.user
@@ -0,0 +1,8 @@
+
+
+
+ -0 /uADMIN
+ $(TargetDir)
+ WindowsLocalDebugger
+
+
\ No newline at end of file
diff --git a/build/ve1.vcxproj b/build/ve1.vcxproj
index c092a7149..7bbfe501e 100644
--- a/build/ve1.vcxproj
+++ b/build/ve1.vcxproj
@@ -115,7 +115,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ve1.vcxproj.user b/build/ve1.vcxproj.user
new file mode 100644
index 000000000..be2507870
--- /dev/null
+++ b/build/ve1.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/build/ve2.vcxproj b/build/ve2.vcxproj
index db8bc56f5..879e5aeb1 100644
--- a/build/ve2.vcxproj
+++ b/build/ve2.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ve2.vcxproj.user b/build/ve2.vcxproj.user
new file mode 100644
index 000000000..6495d1c7c
--- /dev/null
+++ b/build/ve2.vcxproj.user
@@ -0,0 +1,8 @@
+
+
+
+ -3 /uADMIN
+ $(TargetDir)
+ WindowsLocalDebugger
+
+
\ No newline at end of file
diff --git a/build/ve3.vcxproj b/build/ve3.vcxproj
index 6e06125c2..9e6114665 100644
--- a/build/ve3.vcxproj
+++ b/build/ve3.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ve4.vcxproj b/build/ve4.vcxproj
index 5e500b116..cbb00a08c 100644
--- a/build/ve4.vcxproj
+++ b/build/ve4.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ve5.vcxproj b/build/ve5.vcxproj
index 69d517b99..ad9cf0682 100644
--- a/build/ve5.vcxproj
+++ b/build/ve5.vcxproj
@@ -116,7 +116,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ve6.vcxproj b/build/ve6.vcxproj
index 0cda0c883..850b53837 100644
--- a/build/ve6.vcxproj
+++ b/build/ve6.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/ve8.vcxproj b/build/ve8.vcxproj
index c0f79dd90..b5f10d88d 100644
--- a/build/ve8.vcxproj
+++ b/build/ve8.vcxproj
@@ -68,7 +68,7 @@
_DEBUG;WIN32;_WINDOWS;__LONGDOUBLE__
false
MultiThreadedDebug
- true
+
Level3
true
ProgramDatabase
diff --git a/build/xi.vcxproj b/build/xi.vcxproj
index b23338a6f..0cf0cf86e 100644
--- a/build/xi.vcxproj
+++ b/build/xi.vcxproj
@@ -68,7 +68,7 @@
WIN32;_DEBUG;_WINDOWS;DWSWIN;XI_R4_API;XIAGADLL=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)
false
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/xvaga.vcxproj b/build/xvaga.vcxproj
index 1a43a0e2f..416abeac8 100644
--- a/build/xvaga.vcxproj
+++ b/build/xvaga.vcxproj
@@ -114,7 +114,7 @@
false
EnableFastChecks
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/xvapp.vcxproj b/build/xvapp.vcxproj
index 5cf9490c7..01aea5d8a 100644
--- a/build/xvapp.vcxproj
+++ b/build/xvapp.vcxproj
@@ -54,7 +54,7 @@
..\libraries\wx28X\lib\vc_dll\mswd;..\libraries\wx28X\include;%(AdditionalIncludeDirectories)
WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
MultiThreadedDebug
- true
+
Level3
EditAndContinue
true
diff --git a/build/xvtdb.vcxproj b/build/xvtdb.vcxproj
index beccb6832..66c7fddb8 100644
--- a/build/xvtdb.vcxproj
+++ b/build/xvtdb.vcxproj
@@ -115,7 +115,7 @@
false
EnableFastChecks
MultiThreadedDebug
- true
+
Level3
true
EditAndContinue
diff --git a/build/xvturl.vcxproj b/build/xvturl.vcxproj
index 4b7e51697..27bf04b8b 100644
--- a/build/xvturl.vcxproj
+++ b/build/xvturl.vcxproj
@@ -115,7 +115,7 @@
false
EnableFastChecks
MultiThreadedDebugDLL
- true
+
Level3
true
EditAndContinue
diff --git a/src/ba/ba2900.cpp b/src/ba/ba2900.cpp
index 52239e77f..af16523ee 100644
--- a/src/ba/ba2900.cpp
+++ b/src/ba/ba2900.cpp
@@ -8,9 +8,32 @@
#include
#include "ba2900.h"
+#include "../xvtdb/xvtdb.h"
+//#include "tsdb.h"
+#include "codeb.h"
#define TABELLE_CAMPO 171
+void check_range_tab(TMask& msk)
+{
+ if (msk.get_int(F_FROMTAB) == 7466)
+ {
+ msk.show(F_MYRANGE);
+ msk.set(F_FROMTAB, 2);
+ }
+ else
+ {
+ if (msk.get_int(F_FROMTAB) < 2)
+ msk.set(F_FROMTAB, 2);
+ if (msk.get_int(F_FROMTAB) > prefix().items())
+ msk.set(F_FROMTAB, prefix().items());
+ if (msk.get_int(F_TOTAB) < msk.get_int(F_FROMTAB))
+ msk.set(F_TOTAB, msk.get_int(F_FROMTAB));
+ if (msk.get_int(F_TOTAB) > prefix().items())
+ msk.set(F_TOTAB, prefix().items());
+ }
+}
+
class TMSSQLExport_msk : public TAutomask
{
protected:
@@ -18,6 +41,7 @@ protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TMSSQLExport_msk();
+ ~TMSSQLExport_msk();
};
long TMSSQLExport_msk::handler(WINDOW task, EVENT* ep)
@@ -40,7 +64,21 @@ bool TMSSQLExport_msk::on_field_event(TOperable_field& o, TField_event e, long j
if (e == se_query_add || e == se_query_del)
return false;
*/
+ case CHK_ONLYTAB:
+ if (e == fe_modify)
+ {
+ get_bool(CHK_ONLYTAB) ? enable(F_FROMTAB) : disable(F_FROMTAB);
+ get_bool(CHK_ONLYTAB) ? enable(F_TOTAB) : disable(F_TOTAB);
+ break;
+ }
+ case CHK_EXPORTTABLES:
+ if (e == fe_modify)
+ {
+ get_bool(CHK_EXPORTTABLES) ? enable(CHK_ONLYTAB) : disable(CHK_ONLYTAB);
+ break;
+ }
default:
+ check_range_tab(*this);
break;
}
return true;
@@ -51,38 +89,58 @@ TMSSQLExport_msk::TMSSQLExport_msk() : TAutomask("ba2900a")
set(F_DSN, ini_get_string(CONFIG_DITTA, "Campo_MSSQL_Export", "DSN"));
set(F_USR, ini_get_string(CONFIG_DITTA, "Campo_MSSQL_Export", "User"));
set(F_PWD, ini_get_string(CONFIG_DITTA, "Campo_MSSQL_Export", "Password"));
- set(CHK_CREATEGEN, "X");
+ //set(CHK_CREATEGEN, "X");
set(CHK_CREATETABLES, "X");
- set(CHK_EXPORTGEN, "X");
+ //set(CHK_EXPORTGEN, "X");
set(CHK_EXPORTTABLES, "X");
+ set(F_FROMTAB, 2);
+ set(F_TOTAB, prefix().items());
+}
+
+TMSSQLExport_msk::~TMSSQLExport_msk()
+{
+ ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "DSN", TMask::get(F_DSN));
+ ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "User", TMask::get(F_USR));
+ ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "Password", TMask::get(F_PWD));
}
class TMSSQLExport_app : public TSkeleton_application
{
protected:
- TToken_string tables;
- TString DSN, usr, psw;
+ TToken_string _tables;
+ TString _DSN, _usr, _psw;
+ SSimple_query* _db;
+ TMSSQLExport_msk* _msk;
+ bool _visual;
const TString toEscape (TString val) const; // Prende una stringa e sistema i caratteri di escape
const TString toDate (TString val) const; // Prende una stringa e la trasforma in una data di mssql
const TString queryToNull (TString val) const; // Da una query sostituisce tutti i valori vuoti ('') con null
//*****************************************************************
- bool emptyTables() const;
- bool exportGen() const;
- bool exportTables() const;
- bool createGen() const;
- bool createTables() const;
- bool createIndexes() const;
+ bool empty_tables() const;
+ bool expor_gen() const;
+ bool file_valid(int logicnum) const;
+ bool export_tables() const;
+ bool create_gen() const;
+ static TString tab_name(int logicnum, TString& ditta_name);
+ void set_range_tab(int& logicnum, int& endtab) const;
+ bool create_tables() const;
+ bool create_indexes() const;
+ bool rko_outta_nowhere(const char* table_name) const;
// Funzioni di esportazione
bool dir_gen() const;
bool trc_gen() const;
- bool exportManager(const TString generalErrors) const;
+ bool export_manager(const TString generalErrors) const;
public:
+ bool my_range();
virtual void main_loop();
- void setTable(TToken_string s) { tables = s; }
- bool setParameters(TString dsn, TString utente, TString password);
- bool checkParameters(const TString& DSN, const TString& usr, const TString& psw) { TODBC_recordset connTest(""); return connTest.connect(DSN, usr, psw) ? setParameters(DSN, usr, psw) : false; }
- bool testFieldSeq(int val, int arr[]) const;
+ void set_table(TToken_string s) { _tables = s; }
+ bool set_parameters(TString dsn, TString utente, TString password);
+ bool connect(const TString& _DSN, const TString& _usr, const TString& _psw);
+ //bool checkParameters() { TODBC_recordset connTest(""); return connTest.connect(_DSN, _usr, _psw) ? set_parameters(_DSN, _usr, _psw) : false; }
+ bool test_field_seq(int val, int arr[]) const;
+ TMSSQLExport_app() : _visual(false) { }
+ ~TMSSQLExport_app() { delete _db; }
};
// Funzioni Utility ****************************************************************************************************************************
@@ -137,31 +195,31 @@ const TString TMSSQLExport_app::toDate(TString val) const
}
-bool TMSSQLExport_app::setParameters(TString dsn, TString utente, TString password)
+bool TMSSQLExport_app::set_parameters(TString dsn, TString utente, TString password)
{
// Salvo i parametri
- ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "DSN", dsn);
+ ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "_DSN", dsn);
ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "User", utente);
ini_set_string(CONFIG_DITTA, "Campo_MSSQL_Export", "Password", password);
- DSN = dsn;
- usr = utente;
- psw = password;
+ _DSN = dsn;
+ _usr = utente;
+ _psw = password;
return true;
}
-bool TMSSQLExport_app::emptyTables() const
+bool TMSSQLExport_app::empty_tables() const
{
TODBC_recordset sqlset("");
TString table;
- if (!sqlset.connect(DSN, usr, psw))
+ if (!sqlset.connect(_DSN, _usr, _psw))
return false;
- for (int i = 0; i < tables.size(); i++)
+ for (int i = 0; i < _tables.size(); i++)
{
TString theQuery; // The query: una tabella (donna) per cui uccidere
- tables.get(i, table);
+ _tables.get(i, table);
theQuery << "DELETE FROM "<< table << ";";
sqlset.exec(theQuery);
}
@@ -171,7 +229,7 @@ bool TMSSQLExport_app::emptyTables() const
}
// Controllo che il valore passato sia > e diverso da quelli presenti nell'array
-bool TMSSQLExport_app::testFieldSeq(int val, int arr[]) const
+bool TMSSQLExport_app::test_field_seq(int val, int arr[]) const
{
for (int i = 0; i < MKFields; i++)
if(val == arr[i] || val < arr[i]) return false;
@@ -179,12 +237,8 @@ bool TMSSQLExport_app::testFieldSeq(int val, int arr[]) const
}
// Main Program *****************************************************************************************************************************************************************
-bool TMSSQLExport_app::createGen() const
+bool TMSSQLExport_app::create_gen() const
{
- TODBC_recordset sqlset("");
- // Controllo la connessione di nuovo per essere scrupolosi
- if (!sqlset.connect(DSN, usr, psw))
- return false;
ifstream queryFile; // stream dei files con le query
// Prima le tabelle gen
@@ -200,7 +254,7 @@ bool TMSSQLExport_app::createGen() const
gensql << aganaye;
}
queryFile.close();
- if(sqlset.exec(gensql) != 1) // EXEC
+ if(!_db->sq_exec(gensql)) // EXEC
return false;
}
else
@@ -211,94 +265,105 @@ bool TMSSQLExport_app::createGen() const
}
// Committo la creazione iniziale delle tabelle custom fondamentali per il passaggio a DB di Campo
- return sqlset.commit() != -1;
+ return _db->sq_commit();
}
-bool TMSSQLExport_app::createTables() const
+
+TString TMSSQLExport_app::tab_name(int logicnum, TString& ditta_name)
{
- TODBC_recordset sqlset("");
- // Controllo la connessione di nuovo per essere scrupolosi
- if (!sqlset.connect(DSN, usr, psw))
- return false;
- ifstream queryFile; // stream dei files con le query
-
- // Le tabelle comuni
- TFilename studio("sql\\studiosql.sql");
- queryFile.open(studio);
- if(queryFile.is_open())
+ const TString& table = logic2table(logicnum);
+ const bool studio_tab = TDir(logicnum).is_com();
+ return TString("[") << (!studio_tab ? ditta_name : "") << table << "]";
+}
+
+void TMSSQLExport_app::set_range_tab(int& logicnum, int& endtab) const
+{
+ logicnum = 2;
+ endtab = prefix().items();
+ if (_msk->get_bool(CHK_ONLYTAB))
{
- TString studiosql; // Qua metterò le query
- while(!queryFile.eof())
- {
- char aganaye[10000];
- queryFile.getline(aganaye, 10000); // Sei stronzo se fai una riga con più di 10.000 caratteri
- studiosql << aganaye;
- }
- queryFile.close();
- if(sqlset.exec(studiosql) != 1) // EXEC
- return false;
+ check_range_tab(*_msk);
+ logicnum = _msk->get_int(F_FROMTAB);
+ endtab = _msk->get_int(F_TOTAB);
+ endtab++;
}
- else
+}
+
+bool TMSSQLExport_app::connect(const TString& _DSN, const TString& _usr, const TString& _psw)
+{
+ if (_db == nullptr)
+ _db = new SSimple_query();
+
+ if (!_db->sq_is_connect())
{
- TString msg("Errore apertura file "); msg << studio;
- message_box(msg);
- return false;
+ return _db->sq_connect(_DSN, _usr, _psw, TSDB_MSSQL) == NOERR;
}
+ return true;
+}
- /************************************************************************************************
- * Le tabelle di ditta, caso particolare: *
- * In questi file è presente una sequenza di escape (%%%%%) che andrà sostituita con la ditta, *
- * quindi prima leggo tutto e poi sostituisco *
- ************************************************************************************************/
- TFilename ditta("sql\\dittesql.sql");
- TString appsql;
- queryFile.open(ditta);
+bool TMSSQLExport_app::create_tables() const
+{
+ bool ok = true;
+ TString ditta_name; ditta_name << prefix().name() << "_";
+ TString last_col_name = " ";
- // Creo il cursore delle ditte
- TRelation relTDitte(LF_NDITTE);
- TCursor curDitte(&relTDitte);
- int itemsDitte = curDitte.items();
+ int logicnum;
+ int endtab;
+ set_range_tab(logicnum, endtab);
- if(queryFile.is_open())
+ for(; logicnum < endtab && ok; logicnum++)
{
- while(!queryFile.eof())
+ last_col_name = " ";
+ const RecDes& rd = prefix().get_recdes(logicnum);
+ TString table_name = tab_name(logicnum, ditta_name);
+ TString column_name;
+ bool last_err = false;
+ // Droppo la tabella prima di crearla
+ rko_outta_nowhere(table_name);
+ // Create new table
+ if (rd.NFields == 0)
+ continue;
+ TString sql; sql.cut(0) << "CREATE TABLE " << table_name << "(\n";
+ for (int i = 0; i < rd.NFields; i++)
{
- char aganaye[10000];
- queryFile.getline(aganaye, 10000); // Sei stronzo se fai una riga con più di 10.000 caratteri
- appsql << aganaye;
- }
- for(curDitte = 0; curDitte.pos() < curDitte.items(); ++curDitte)
- {
- TRectype dittaCurr = curDitte.curr();
- TString nomeDitta(dittaCurr.get("CODDITTA"));
- for (int i = 0, applen = nomeDitta.len(); i < 5 - applen; i++)
- nomeDitta.insert("0");
- // Non esiste nulla che rimpiazzi tutte occorrenze (stringhe) in una TString, quindi mi faccio io l'algoritmo
- TString queryFirm(appsql);
- int lastpos = queryFirm.find("%%%%%", 0);
- while(lastpos != -1)
+
+ if (i > 0 && !last_err) sql << ",\n";
+ column_name.cut(0) << "[" << rd.Fd[i].Name << "] ";
+ if (column_name == last_col_name)
{
- // Siccome so che ci sono 5 caratteri faccio che farlo a mano da vero gangster
- queryFirm[lastpos] = nomeDitta[0];
- queryFirm[lastpos + 1] = nomeDitta[1];
- queryFirm[lastpos + 2] = nomeDitta[2];
- queryFirm[lastpos + 3] = nomeDitta[3];
- queryFirm[lastpos + 4] = nomeDitta[4];
- lastpos = queryFirm.find("%%%%%", lastpos); // find(x, lastpos) si velocizza partendo già dalla ultima posizione trovata
- }
- if(sqlset.exec(queryFirm) != 1) // EXEC
- return false;
+ last_err = true;
+ continue;
+ }
+ last_err = false;
+ last_col_name = column_name;
+ sql << column_name;
+ switch (rd.Fd[i].TypeF)
+ {
+ case _charfld:
+ case _alfafld:
+ sql << "VARCHAR(" << rd.Fd[i].Len << ")";
+ break;
+ case _memofld:
+ sql << "TEXT"; break;
+ case _datefld:
+ sql << "DATE"; break;
+ case _boolfld:
+ sql << "BIT DEFAULT 0"; break;
+ case _realfld:
+ case _wordfld:
+ case _intfld:
+ case _longfld:
+ case _intzerofld:
+ case _longzerofld:
+ default: sql << "NUMERIC(" << rd.Fd[i].Len << "," << rd.Fd[i].Dec << ")"; break;
+ }
}
- queryFile.close();
+ sql << "\n);";
+
+ ok = _db->sq_set_exec(sql) && _db->sq_commit();
+ TString err = _db->sq_get_string_error();
+ TString err2 = _db->sq_get_text_error();
}
- else
- {
- TString msg("Errore apertura file "); msg << ditta;
- message_box(msg);
- return false;
- }
-
- // Committo la creazione iniziale delle tabelle custom fondamentali per il passaggio a DB di Campo
- return sqlset.commit() != -1 && createIndexes();
+ return ok;
}
/*
@@ -306,10 +371,10 @@ bool TMSSQLExport_app::createTables() const
* Sintassi: CREATE NONCLUSTERED INDEX nome_indice ON nome_tabella (colonna1 [ASC | DESC], colonna2 [ASC | DESC][,...n])
*
*/
-bool TMSSQLExport_app::createIndexes() const
+bool TMSSQLExport_app::create_indexes() const
{
TODBC_recordset sqlset("");
- if (!sqlset.connect(DSN, usr, psw))
+ if (!sqlset.connect(_DSN, _usr, _psw))
return "Connessione fallita!";
int items = TABELLE_CAMPO; // Numero totale di tabelle
COpenDir((int)_manulock, NORDIR); // Apro dir.gen
@@ -392,42 +457,166 @@ bool TMSSQLExport_app::createIndexes() const
return true;
}
-bool TMSSQLExport_app::exportGen() const
+bool TMSSQLExport_app::rko_outta_nowhere(const char* table_name) const
+{
+ _db->sq_set_exec(TString().cut(0) << "DROP TABLE " << table_name << ';') && _db->sq_commit();
+ return true;
+}
+
+bool TMSSQLExport_app::expor_gen() const
{
return dir_gen() && trc_gen();
}
-bool TMSSQLExport_app::exportTables() const
+bool TMSSQLExport_app::file_valid(int logicnum) const
+{
+ TFilename filename;
+ const TIsam_handle isam_handle = prefix().open_isamfile(logicnum, filename, false, true);
+ const TCodeb_handle fhnd = isam_handle > 0 ? prefix().get_handle(isam_handle, 1) : isam_handle;
+ const int trcreclen = prefix().get_reclen(logicnum);
+ const int dbfreclen = DB_reclen(fhnd);
+ return dbfreclen == trcreclen;
+}
+
+const TString to_escape(const TString& val)
+{
+ TString& app = get_tmp_string();
+ for (int k = 0; k < val.len(); k++)
+ {
+ switch (val[k])
+ {
+ case '\'':
+ app << "''";
+ break;
+ default:
+ app << val[k];
+ break;
+ }
+ }
+ return app;
+}
+
+const TString query_to_null(TString& val)
+{
+ int lastpos = val.find("(\'\'", 0); // Devo trovarne uno tra virgole
+ while (lastpos != -1)
+ {
+ lastpos++;
+ val[lastpos] = ' ';
+ val[lastpos + 1] = ' ';
+ val.insert("NULL", lastpos);
+ lastpos = val.find(",\'\'", lastpos);
+ }
+ lastpos = val.find(",\'\'", 0); // Devo trovarne uno tra virgole
+ while (lastpos != -1)
+ {
+ lastpos++;
+ val[lastpos] = ' ';
+ val[lastpos + 1] = ' ';
+ val.insert("NULL", lastpos);
+ lastpos = val.find(",\'\'", lastpos);
+ }
+
+ return val;
+}
+
+bool TMSSQLExport_app::export_tables() const
{
// Innanzitutto svuoto le tabelle
- if(!emptyTables()) return false;
- TODBC_recordset sqlset("");
- if (!sqlset.connect(DSN, usr, psw))
- return "Connessione fallita!";
- try
+ bool check = true;
+ TString ditta_name; ditta_name << prefix().name() << "_";
+
+ int logicnum;
+ int endtab;
+ set_range_tab(logicnum, endtab);
+
+ for (; logicnum < endtab && check; logicnum++)
{
- bool wat = false;
- // Inizio con dir.gen
- TString generalErrors;
- exportManager(generalErrors);
+ TString nome_tab = tab_name(logicnum, ditta_name);
+ const RecDes& rd = prefix().get_recdes(logicnum);
+ TLocalisamfile table(logicnum);
+ if(!file_valid(logicnum))
+ {
+ warning_box(TString("Impossibile esportare il file ") << logicnum);
+ continue;
+ }
+
+ TString queryF, queryV;
+ TProgress_monitor p(table.items(), TString("Esportazione tabella ") << logic2table(logicnum));
+ bool export_status = true;
+ bool ok = table.first() == NOERR;
+ for (; ok && export_status; ok = table.next() == NOERR)
+ {
+ if (_visual && !p.add_status())
+ return false;
+ queryF.cut(0) << "INSERT INTO " << nome_tab << " (";
+ queryV.cut(0) << "(";
+ for (int k = 0; k < rd.NFields; k++)
+ {
+ queryF << "[" << rd.Fd[k].Name << "]";
+ if (table.get(rd.Fd[k].Name).empty()) // Vuoto, causa errori se non controllato
+ queryV << "''";
+ else
+ {
+ switch (rd.Fd[k].TypeF)
+ {
+ case _intfld:
+ case _wordfld:
+ case _intzerofld:
+ queryV << "'" << table.get_int(rd.Fd[k].Name) << "'";
+ break;
+
+ case _longfld:
+ case _longzerofld:
+ queryV << "'" << table.get_long(rd.Fd[k].Name) << "'";
+ break;
+
+ // Real
+ case _realfld:
+ queryV << "'" << table.get_real(rd.Fd[k].Name).string() << "'";
+ break;
+
+ case _datefld:
+ queryV << "'" << table.get_date(rd.Fd[k].Name).date2ansi() << "'";
+ break;
+
+ case _boolfld:
+ if (table.get_bool(rd.Fd[k].Name))
+ queryV << "'1'";
+ else
+ queryV << "'0'";
+ break;
+
+ case _charfld:
+ case _alfafld:
+ default:
+ queryV << "'" << to_escape(table.get(rd.Fd[k].Name)) << "'";
+ break;
+ }
+ }
+
+ if (k + 1 < rd.NFields) // Modo più comodo
+ {
+ queryF << ",";
+ queryV << ",";
+ }
+ }
+
+
+ queryV << ")";
+ queryF << ") VALUES " << queryV;
+ export_status &= _db->sq_set_exec(query_to_null(queryF));
+ }
+ check = export_status && _db->sq_commit();
}
- catch (TString orrore)
- {
- message_box(orrore);
- return false;
- }
- return true;
+ return check;
}
bool TMSSQLExport_app::dir_gen() const
{
- TODBC_recordset sqlset("", true);
- // Controllo la connessione
- if (!sqlset.connect(DSN, usr, psw))
- return false;
- int items = TABELLE_CAMPO; // Numero totale di tabelle
- TString msg("Esportazione elenco directory");
+ const int items = prefix().items()-1; // Numero totale di tabelle
+ const TString msg("Esportazione elenco directory");
COpenDir((int)_manulock, NORDIR); // Apro dir.gen
TProgress_monitor p(items, msg);
for (int i = 1; i <= items && !p.is_cancelled(); i++)
@@ -448,20 +637,16 @@ bool TMSSQLExport_app::dir_gen() const
<< toEscape(d.Des) << "','"
<< toEscape(d.FCalc) << "','"
<< toEscape(d.GenPrompt) << "')";
- if(sqlset.exec(queryToNull(sqlQuery)) != 1)
+ if(!_db->sq_exec(queryToNull(sqlQuery)))
return false;
}
- return sqlset.commit() == -1 ? false : true;
+ return _db->sq_commit();
}
bool TMSSQLExport_app::trc_gen() const
{
- TODBC_recordset sqlset("", true);
- // Controllo la connessione
- if (!sqlset.connect(DSN, usr, psw))
- return false;
- int items = TABELLE_CAMPO; // Numero totale di tabelle
- TString msg("Esportazione tracciati record");
+ const int items = prefix().items()-1; // Numero totale di tabelle
+ const TString msg("Esportazione tracciati record");
COpenDir((int)_manulock, NORDIR); // Apro dir.gen
TProgress_monitor p(items-1, msg);
for (int i = 2; i <= items && !p.is_cancelled(); i++)
@@ -487,7 +672,7 @@ bool TMSSQLExport_app::trc_gen() const
<< SortFd << "','"
<< d.NKeys << "','"
<< i << "')";
- if(sqlset.exec(queryToNull(sqlQueryTrc)) != 1)
+ if(!_db->sq_exec(queryToNull(sqlQueryTrc)))
return false;
// Poi trc_recfdes
@@ -504,7 +689,7 @@ bool TMSSQLExport_app::trc_gen() const
<< r.Dec << "','"
<< r.RecOff << "','"
<< i << "')";
- if(sqlset.exec(queryToNull(sqlQueryRFD)) != 1)
+ if(!_db->sq_exec(queryToNull(sqlQueryRFD)))
return false;
}
@@ -540,18 +725,18 @@ bool TMSSQLExport_app::trc_gen() const
<< FromCh << "','"
<< ToCh << "','"
<< i << "')";
- if(sqlset.exec(queryToNull(sqlQueryKD)) != 1)
+ if(!_db->sq_exec(queryToNull(sqlQueryKD)))
return false;
}
}
- return sqlset.commit() == -1 ? false : true;
+ return _db->sq_commit();
}
-bool TMSSQLExport_app::exportManager(TString generalErrors) const
+bool TMSSQLExport_app::export_manager(TString generalErrors) const
{
TODBC_recordset sqlset("", true);
// Controllo la connessione
- if (!sqlset.connect(DSN, usr, psw))
+ if (!sqlset.connect(_DSN, _usr, _psw))
return false;
COpenDir((int)_manulock, NORDIR); // Apro dir.gen
@@ -662,31 +847,70 @@ bool TMSSQLExport_app::exportManager(TString generalErrors) const
return true;
}
+bool TMSSQLExport_app::my_range()
+{
+ TString myrange(_msk->get(F_MYRANGE));
+ if (myrange.empty())
+ return false;
+ TToken_string range_tok(myrange, ',');
+ if(range_tok.items() > 0)
+ {
+ TToken_string one_range(range_tok.get(0), '-');
+ _msk->set(F_FROMTAB, one_range.get(0));
+ one_range.items() == 0 ? _msk->set(F_TOTAB, one_range.get(0)) : _msk->set(F_TOTAB, one_range.get(1));
+ range_tok.destroy(0);
+ TString rewrite;
+ for(int i=0; i < range_tok.items(); i++)
+ {
+ if (i > 0)
+ rewrite << ",";
+ rewrite << range_tok.get();
+ }
+ _msk->set(F_MYRANGE, rewrite);
+ }
+ return !TString(_msk->get(F_MYRANGE)).empty(); // se vuoto anche solo la prima volta interrompo il loop
+}
+
void TMSSQLExport_app::main_loop()
{
- TMSSQLExport_msk m;
- while (m.run() == K_ENTER)
+ TMSSQLExport_msk msk;
+ _msk = &msk;
+
+ while (msk.run() == K_ENTER)
{
- const TString& DSN = m.get(F_DSN);
- const TString& usr = m.get(F_USR);
- const TString& psw = m.get(F_PWD);
+#ifdef DBG
+ const TString& _DSN = "TESTCAMPO2012\\MSSQLSERVER2019@campo13";
+ const TString& _usr = "campo";
+ const TString& _psw = "campo";
+#else
+ const TString& _DSN = msk.get(F_DSN);
+ const TString& _usr = msk.get(F_USR);
+ const TString& _psw = msk.get(F_PWD);
+#endif
+ _visual = true;
// Chiamo la funzione globale esporta
- if(checkParameters(DSN, usr, psw))
+ if(connect(_DSN, _usr, _psw))
{
- // Per comodità utilizzo gli AND short circuits, solo se i bool danno true eseguo la funzione dopo!
- if(m.get_bool(CHK_CREATEGEN))
- if(!createGen())
- message_box("ERROR: Creazione tabelle gen fallita");
- if(m.get_bool(CHK_CREATETABLES))
- if(!createTables())
- message_box("ERROR: Creazione tabelle campo fallita");
- if(m.get_bool(CHK_EXPORTGEN))
- if (!exportGen())
- message_box("CERROR: Esportazione tabelle gen fallita");
- if(m.get_bool(CHK_EXPORTTABLES))
- if(!exportTables())
- message_box("ERROR: Esportazione tabelle campo fallita");
- message_box("Migrazione effettuata correttamente!");
+ while (true)
+ {
+ bool loop = my_range();
+ // Per comodità utilizzo gli AND short circuits, solo se i bool danno true eseguo la funzione dopo!
+ if (msk.get_bool(CHK_CREATEGEN))
+ if (!create_gen())
+ message_box("ERROR: Creazione tabelle gen fallita");
+ if (msk.get_bool(CHK_CREATETABLES))
+ if (!create_tables())
+ message_box("ERROR: Creazione tabelle campo fallita");
+ if (msk.get_bool(CHK_EXPORTGEN))
+ if (!expor_gen())
+ message_box("CERROR: Esportazione tabelle gen fallita");
+ if (msk.get_bool(CHK_EXPORTTABLES))
+ if (!export_tables())
+ message_box("ERROR: Esportazione tabelle campo fallita");
+ message_box("Migrazione effettuata correttamente!");
+ if (!loop)
+ break;
+ }
}
else
message_box("Fallita connessione");
@@ -698,7 +922,7 @@ int ba2900(int argc, char* argv[])
{
TMSSQLExport_app app;
// Imposto le tabelle da utilizzare
- app.setTable("TRC_GEN|TRC_KEYDES|TRC_RECFDES");
+ app.set_table("TRC_GEN|TRC_KEYDES|TRC_RECFDES");
app.run(argc, argv, TR("Migrazione DB a MSSQL"));
return 0;
}
diff --git a/src/ba/ba2900.h b/src/ba/ba2900.h
index 50e8ba146..ff7625366 100644
--- a/src/ba/ba2900.h
+++ b/src/ba/ba2900.h
@@ -5,3 +5,8 @@
#define CHK_CREATETABLES 254
#define CHK_EXPORTGEN 255
#define CHK_EXPORTTABLES 256
+
+#define CHK_ONLYTAB 257
+#define F_FROMTAB 258
+#define F_TOTAB 259
+#define F_MYRANGE 260
\ No newline at end of file
diff --git a/src/ba/ba2900a.uml b/src/ba/ba2900a.uml
index 9111466ee..d57a16f2e 100644
--- a/src/ba/ba2900a.uml
+++ b/src/ba/ba2900a.uml
@@ -10,7 +10,7 @@ PAGE "Trasferimento DB su MSSQL" 0 2 0 0
STRING F_DSN 260 50
BEGIN
- PROMPT 1 0 "ODBC DSN "
+ PROMPT 1 1 "ODBC DSN "
CHECKTYPE REQUIRED
END
@@ -30,6 +30,7 @@ END
BOOLEAN CHK_CREATEGEN
BEGIN
PROMPT 1 5 "Elimina e ricrea tutte le tabelle gen, Attenzione! I dati presenti verranno eliminati!"
+ FLAGS "H"
END
BOOLEAN CHK_CREATETABLES
@@ -40,6 +41,7 @@ END
BOOLEAN CHK_EXPORTGEN
BEGIN
PROMPT 1 7 "Esporta tabelle gen"
+ FLAGS "H"
END
BOOLEAN CHK_EXPORTTABLES
@@ -47,6 +49,29 @@ BEGIN
PROMPT 1 8 "Esporta tabelle dati"
END
+BOOLEAN CHK_ONLYTAB
+BEGIN
+ PROMPT 1 9 "Esporta\crea tabelle in un intervallo"
+END
+
+NUMBER F_FROMTAB 4 0
+BEGIN
+ PROMPT 1 10 "Da "
+ FLAGS "D"
+END
+
+NUMBER F_TOTAB 3 0
+BEGIN
+ PROMPT 10 10 "A "
+ FLAGS "D"
+END
+
+STRING F_MYRANGE 50
+BEGIN
+ PROMPT 1 11 "MY RANGE "
+ FLAGS "H"
+END
+
END
ENDPAGE
diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp
index 342f64cc9..2551e0107 100644
--- a/src/fp/fplib01.cpp
+++ b/src/fp/fplib01.cpp
@@ -1267,9 +1267,7 @@ void TDoc_fp::add_ritenuta(const TDocumentoEsteso& doc, const TSpesa_prest& sp,
paf0700f.set("P7_TIPORITENUTA", _rec_clifo.get_char(CLI_TIPOPERS) == 'F' ? "RT01" : "RT02");
TString doc_imponibile = doc.imponibile().string();
- const real imponibile = doc.ritenute();
-
- paf0700f.set("P7_IMPORTORIT", converti_prezzo(imponibile * sp.perc() / CENTO));
+ paf0700f.set("P7_IMPORTORIT", converti_prezzo(doc.ritenute()));
paf0700f.set("P7_ALIQUOTARIT", sp.perc());
static TString caus_la; caus_la.cut(0);
caus_la << sp.get("S14");
diff --git a/src/include/odbcrset.cpp b/src/include/odbcrset.cpp
index f9055b815..699a33361 100755
--- a/src/include/odbcrset.cpp
+++ b/src/include/odbcrset.cpp
@@ -724,6 +724,387 @@ TODBC_recordset::TODBC_recordset(const char* sql, const bool freezed) : _freezed
TODBC_recordset::~TODBC_recordset()
{ }
+///////////////////////////////////////////////////////////
+// TDB_recordset
+///////////////////////////////////////////////////////////
+
+void TDB_recordset::reset()
+{
+ _current_row = -1;
+ _is_loaded = false;
+ _items = 0;
+ _row.destroy();
+ _column.destroy();
+}
+
+/* La query può iniziare con la stringa di connessione così fatta:
+ * CONNECT(server, user, psw, driver = "MSSQL") il driver può essere omesso.
+ * Se c'è la estraggo, setto la connessione e prendo la vera query.
+ * Se no setto direttamente la query.
+ * Ritorno false se non mi sono mai connesso a niente e non passo
+ * la stringa di connessione.
+ */
+bool TDB_recordset::set(const char* sql)
+{
+ bool ok;
+ TString real_query = "";
+ // Posso modificare oppure non posso ma _sql è vuota
+ if (!_freezed || _sql.empty())
+ {
+ if (_sql.empty() || !_freezed && !_sql.empty())
+ {
+ // Guardo se la query inizia con la stringa di connessione
+ if (TString(sql).starts_with("CONNECT(", true))
+ {
+ TString query(sql);
+ int pos_EOCon = query.find(')'); // End Of Conn
+ const TString& conn_str = query.sub(0, ++pos_EOCon);
+ ok = set_connection(conn_str);
+ if (!ok)
+ return false;
+ real_query << query.sub(pos_EOCon);
+ }
+ else if (!is_connected())
+ return false;
+ else
+ real_query << sql;
+
+ // Non sto facendo una select
+ if (real_query.find("SELECT") == -1 && real_query.find("select") == -1)
+ {
+ _sql.cut(0);
+ reset();
+ return false;
+ }
+
+ // Serve?
+ if (!_freezed || _sql != sql)
+ reset();
+
+ _sql.cut(0) << real_query;
+ if (_sql.find("SELECT") >= 0 || _sql.find("select") >= 0)
+ find_and_reset_vars();
+
+ bool is_set;
+ if ((is_set = _rec->sq_set(_sql))) {
+ unset_loaded();
+ }
+ return is_set;
+ }
+ }
+ return false;
+}
+
+/* Parso la stringa di connessione ed estraggo i dati.
+ * Se il numero di dati è sufficiente eseguo la connessione.
+ * Ritorno false se non riesco a connettermi o il numero di dati è sbagliato
+ */
+bool TDB_recordset::set_connection(const char* conn_str) const
+{
+ TString pn(conn_str);
+ TString srv = "", usr = "", pwd = "", drv = "";
+
+ int first_pos = pn.find("(", 0);
+ int last_pos = pn.find(",", first_pos);
+ int i;
+
+ for (i = 0; last_pos != -1; i++) {
+ switch (i)
+ {
+ case 0:
+ srv = pn.sub(first_pos + 1, last_pos);
+ break;
+ case 1:
+ usr = pn.sub(first_pos + 1, last_pos);
+ break;
+ case 2:
+ pwd = pn.sub(first_pos + 1, last_pos);
+ break;
+ case 3:
+ drv = pn.sub(first_pos + 1, last_pos);
+ break;
+ default:
+ last_pos = -1;
+ break;
+ }
+ first_pos = last_pos;
+ last_pos = pn.find(",", first_pos + 1);
+ if (last_pos == -1)
+ last_pos = pn.find(")", first_pos + 1);
+ }
+
+ // Guardo se ho valorizzato almeno i primi 3 elementi della connect
+ // Se non valorizzo l'ultimo come default: MSSQL Server
+ if (i == 3)
+ return connect(srv.ltrim(), usr.ltrim(), pwd.ltrim(), TSDB_MSSQL);
+ if (i == 4)
+ return connect(srv.ltrim(), usr.ltrim(), pwd.ltrim(), str_to_driver(drv.ltrim()));
+
+ return false;
+}
+
+// Ritorna true se si connette
+bool TDB_recordset::connect(const char * db, const char * user, const char * pass, const TT_driver tipo_db) const
+{
+ const bool connected = _rec->sq_connect(db, user, pass, tipo_db) == NOERR;
+ // Nel dubbio setto entrambi
+ _rec->sq_set_con_option("UseDynamicCursor", "True");
+ _rec->sq_set_con_option("Scrollable", "True");
+ return connected;
+}
+
+TT_driver TDB_recordset::str_to_driver(const char* tipo_db)
+{
+ if (_stricmp(tipo_db, "") == 0)
+ return TSDB_undefined;
+ //! ODBC
+ if (_stricmp(tipo_db, "ODBC") == 0)
+ return TSDB_ODBC;
+ //! Oracle
+ if (_stricmp(tipo_db, "Oracle") == 0)
+ return TSDB_Oracle;
+ //! Microsoft SQL Server
+ if (_stricmp(tipo_db, "MSSQL") == 0)
+ return TSDB_MSSQL;
+ //! InterBase or Firebird
+ if (_stricmp(tipo_db, "InterBase") == 0)
+ return TSDB_InterBase;
+ //! SQLBase
+ if (_stricmp(tipo_db, "SQLBase") == 0)
+ return TSDB_SQLBase;
+ //! IBM DB2
+ if (_stricmp(tipo_db, "DB2") == 0)
+ return TSDB_DB2;
+ //! Informix
+ if (_stricmp(tipo_db, "Informix") == 0)
+ return TSDB_Informix;
+ //! Sybase ASE
+ if (_stricmp(tipo_db, "Sybase") == 0)
+ return TSDB_Sybase;
+ //! MySQL
+ if (_stricmp(tipo_db, "MySQL") == 0)
+ return TSDB_MySQL;
+ //! PostgreSQL
+ if (_stricmp(tipo_db, "PostgreSQL") == 0)
+ return TSDB_PostgreSQL;
+ //! SQLite
+ if (_stricmp(tipo_db, "SQLite") == 0)
+ return TSDB_SQLite;
+ //! SQL Anywere
+ if (_stricmp(tipo_db, "SQLAnywhere") == 0)
+ return TSDB_SQLAnywhere;
+ return TSDB_undefined;
+}
+
+bool TDB_recordset::set_loaded()
+{
+ bool ok = false;
+ if (!_sql.empty() && _rec->sq_exec(false))
+ {
+ ok = _is_loaded = true;
+ _items = _rec->sq_items();
+ _ncolumns = _rec->sq_get_num_fields();
+ }
+ return ok;
+}
+
+void TDB_recordset::unset_loaded()
+{
+ _is_loaded = false;
+ _items = 0;
+ _ncolumns = 0;
+ _current_row = 0;
+}
+
+void TDB_recordset::freeze(const bool on)
+{
+ if (on)
+ _rec->freeze();
+ else
+ _rec->defrost();
+ _freezed = on;
+}
+
+bool TDB_recordset::connect(const char* db, const char* user, const char* pass, const char* tipo_db) const
+{
+ return _rec->sq_connect(db, user, pass, str_to_driver(tipo_db)) == NOERR;
+}
+
+TRecnotype TDB_recordset::items() const
+{
+ if (_is_loaded)
+ return _items;
+ return _rec->sq_items();
+}
+
+bool TDB_recordset::move_to(TRecnotype pos)
+{
+ const TRecnotype tot = items();
+ TRecnotype row = pos;
+ bool ok = true;
+
+ if (pos < 0)
+ row = 0;
+ if (pos > tot)
+ row = tot;
+
+ if (!_is_loaded)
+ ok = set_loaded();
+
+ if (ok && ((ok = _rec->sq_go(row))))
+ _current_row = pos;
+
+ return ok;
+}
+
+bool TDB_recordset::move_next()
+{
+ bool ok = true;
+
+ if (!_is_loaded)
+ ok = set_loaded();
+
+ if (ok && _rec->sq_next())
+ {
+ _current_row = _rec->sq_pos();
+ return true;
+ }
+ return false;
+}
+
+const TString_array TDB_recordset::get_next_row()
+{
+ if (move_next())
+ return get_row();
+ return TString_array();
+}
+
+const TString_array TDB_recordset::get_row(TRecnotype n)
+{
+ bool ok = true;
+
+ // Get della riga attuale
+ if (n == -1)
+ n = current_row();
+
+ else if (_current_row != n)
+ ok = move_to(n); // Solo se non sono già su quella riga
+
+ if (ok)
+ {
+ const unsigned ncol = _rec->sq_get_num_fields();
+ _row.destroy();
+ for (unsigned i = 0; i < ncol; i++)
+ _row.add(TString(_rec->sq_get(i, false)));
+ return _row;
+ }
+ // else
+ _row.destroy();
+ return _row;
+}
+
+void TDB_recordset::requery()
+{
+ _items = 0;
+ _current_row = -1;
+ _row.destroy();
+ _column.destroy();
+}
+
+unsigned TDB_recordset::columns() const
+{
+ if (!_is_loaded)
+ {
+ TDB_recordset* my_self = const_cast(this);
+ my_self->set_loaded();
+ }
+ return _ncolumns;
+}
+
+const TRecordset_column_info& TDB_recordset::column_info(const unsigned column) const
+{
+ static TRecordset_column_info info;
+ if (_is_loaded)
+ {
+ info._name = _rec->sq_get_name_field(column); // TString
+ info._width = _rec->sq_get_width_field(column); // int
+ info._type = _rec->sq_get_type_field(column); // TFieldtypes
+ info._pos = column;
+ }
+ else
+ {
+ info._name.cut(0); // TString
+ info._width = 0; // int
+ info._type = _alfafld; // TFieldtypes
+ info._pos = 0;
+ }
+ return info;
+}
+
+const TVariant& TDB_recordset::get(unsigned int column) const
+{
+ static TVariant field = NULL_VARIANT;
+ static unsigned int last_get = 0;
+ if (!_freezed || column != last_get || field == NULL_VARIANT)
+ {
+ last_get = column;
+ field = _rec->sq_get(column);
+ }
+ return field;
+}
+
+const TVariant& TDB_recordset::get(const char* name) const
+{
+ return TRecordset::get(name);
+}
+
+bool TDB_recordset::is_connected() const
+{
+ return _rec->sq_is_connect();
+}
+
+const TVariant& TDB_recordset::active_connection() const
+{
+ static TVariant conn = NULL_VARIANT;
+ conn.add(_dsn);
+ conn.add(_usr);
+ conn.add(_drv);
+ return conn;
+}
+
+bool TDB_recordset::exec(const char* sql)
+{
+ bool exec = false;
+ if ((exec = _rec->sq_set_exec(sql))) {
+ _is_loaded = true;
+ _items = _rec->sq_items();
+ }
+ return exec;
+}
+
+bool TDB_recordset::commit() const
+{
+ return _rec->sq_commit();
+}
+
+TDB_recordset::TDB_recordset(const char* sql, const bool freezed) : _freezed(freezed)
+{
+ _current_row = -1;
+ _rec = new SSimple_query();
+ //_rec->sq_set_autocommit(true);
+ _sql.cut(0);
+ _is_loaded = false;
+ _items = 0;
+ _ncolumns = 0;
+ freeze(freezed);
+ set(sql);
+}
+
+TDB_recordset::~TDB_recordset()
+{
+ delete _rec;
+}
+
///////////////////////////////////////////////////////////
// Creazione "intelligente" del recordset appropriato in base alla query
///////////////////////////////////////////////////////////
diff --git a/src/include/odbcrset.h b/src/include/odbcrset.h
index 5e83dd507..0595bed45 100755
--- a/src/include/odbcrset.h
+++ b/src/include/odbcrset.h
@@ -5,6 +5,10 @@
#include
#endif
+#ifndef __TSDB_H
+#include
+#endif
+
enum TODBC_driver {
ODBC_generic,
ODBC_mssql,
@@ -72,4 +76,55 @@ public:
virtual ~TODBC_recordset();
};
+class TDB_recordset : public TRecordset
+{
+ SSimple_query * _rec;
+ TString _sql;
+ TString _dsn, _usr, _pwd, _drv;
+
+ bool _freezed;
+ TRecnotype _current_row;
+ TString_array _row, _column;
+ bool _is_loaded;
+ TRecnotype _items;
+ unsigned _ncolumns;
+
+protected:
+ // Parsa la stringa di connessione contenuta nella query
+ bool set_connection(const char * conn_str) const;
+ bool connect(const char * db, const char * user, const char * pass, const TT_driver tipo_db) const;
+ bool connect(const char * db, const char * user, const char * pass, const char * tipo_db) const;
+ static TT_driver str_to_driver(const char* tipo_db);
+ bool set_loaded();
+ void unset_loaded();
+
+public:
+ void freeze(const bool on = true);
+ void reset();
+ bool set(const char* sql);
+ bool move_to(TRecnotype pos) override; // Pure
+ bool move_next() override;
+ void requery() override; // da impl. Pure
+ bool is_connected() const;
+ unsigned columns() const override; // Pure
+ TRecnotype items() const override; // Pure
+ TRecnotype current_row() const override { return _current_row; } // Pure
+ // Con il valore di default viene restituita la riga alla pos. attuale
+ const TString_array get_row(TRecnotype n = -1);
+ const TString_array get_next_row();
+ const TString& query_text() const override { return _sql; }
+ const TString& driver_version() const override { return _rec->sq_get_client_v(); };
+ const TVariant& get(unsigned int column) const override; // Pure
+ const TVariant& get(const char* name) const override; // Pure
+ const TRecordset_column_info& column_info(unsigned int column) const override; // Pure
+
+ // Ritorna la connessione attuale
+ const TVariant& active_connection() const;
+ bool exec(const char* sql);
+ bool commit() const;
+
+ TDB_recordset(const char * sql, bool freezed = false);
+ ~TDB_recordset();
+};
+
#endif
diff --git a/src/include/tsdb.cpp b/src/include/tsdb.cpp
index b0df08595..76cd1df5f 100644
--- a/src/include/tsdb.cpp
+++ b/src/include/tsdb.cpp
@@ -107,380 +107,3 @@ const char* SSimple_query::sq_get_token_text_error(const int token, const bool e
TToken_string errors(sq_get_text_error(erase), '\n');
return errors.get(token);
}
-
-void TDB_recordset::reset()
-{
- _current_row = -1;
- _is_loaded = false;
- _items = 0;
- _row.destroy();
- _column.destroy();
-}
-
-/* La query può iniziare con la stringa di connessione così fatta:
- * CONNECT(server, user, psw, driver = "MSSQL") il driver può essere omesso.
- * Se c'è la estraggo, setto la connessione e prendo la vera query.
- * Se no setto direttamente la query.
- * Ritorno false se non mi sono mai connesso a niente e non passo
- * la stringa di connessione.
- */
-bool TDB_recordset::set(const char* sql)
-{
- bool ok;
- TString real_query = "";
- // Posso modificare oppure non posso ma _sql è vuota
- if(!_freezed || _sql.empty())
- {
- if (_sql.empty() || !_freezed && !_sql.empty())
- {
- // Guardo se la query inizia con la stringa di connessione
- if (TString(sql).starts_with("CONNECT(", true))
- {
- TString query(sql);
- int pos_EOCon = query.find(')'); // End Of Conn
- const TString& conn_str = query.sub(0, ++pos_EOCon);
- ok = set_connection(conn_str);
- if (!ok)
- return false;
- real_query << query.sub(pos_EOCon);
- }
- else if (!is_connected())
- return false;
- else
- real_query << sql;
-
- // Non sto facendo una select
- if(real_query.find("SELECT") == -1 && real_query.find("select") == -1)
- {
- _sql.cut(0);
- reset();
- return false;
- }
-
- // Serve?
- if (!_freezed || _sql != sql)
- reset();
-
- _sql.cut(0) << real_query;
- if (_sql.find("SELECT") >= 0 || _sql.find("select") >= 0)
- find_and_reset_vars();
-
- bool is_set;
- if ((is_set = _rec->sq_set(_sql))) {
- unset_loaded();
- }
- return is_set;
- }
- }
- return false;
-}
-
-/* Parso la stringa di connessione ed estraggo i dati.
- * Se il numero di dati è sufficiente eseguo la connessione.
- * Ritorno false se non riesco a connettermi o il numero di dati è sbagliato
- */
-bool TDB_recordset::set_connection(const char* conn_str) const
-{
- TString pn(conn_str);
- TString srv = "", usr = "", pwd = "", drv = "";
-
- int first_pos = pn.find("(", 0);
- int last_pos = pn.find(",", first_pos);
- int i;
-
- for (i = 0; last_pos != -1; i++) {
- switch (i)
- {
- case 0:
- srv = pn.sub(first_pos + 1, last_pos);
- break;
- case 1:
- usr = pn.sub(first_pos + 1, last_pos);
- break;
- case 2:
- pwd = pn.sub(first_pos + 1, last_pos);
- break;
- case 3:
- drv = pn.sub(first_pos + 1, last_pos);
- break;
- default:
- last_pos = -1;
- break;
- }
- first_pos = last_pos;
- last_pos = pn.find(",", first_pos + 1);
- if( last_pos == -1 )
- last_pos = pn.find(")", first_pos + 1);
- }
-
- // Guardo se ho valorizzato almeno i primi 3 elementi della connect
- // Se non valorizzo l'ultimo come default: MSSQL Server
- if (i == 3)
- return connect(srv.ltrim(), usr.ltrim(), pwd.ltrim(), TSDB_MSSQL);
- if(i == 4)
- return connect(srv.ltrim(), usr.ltrim(), pwd.ltrim(), str_to_driver(drv.ltrim()));
-
- return false;
-}
-
-// Ritorna true se si connette
-bool TDB_recordset::connect(const char * db, const char * user, const char * pass, const TT_driver tipo_db) const
-{
- const bool connected = _rec->sq_connect(db, user, pass, tipo_db) == NOERR;
- // Nel dubbio setto entrambi
- _rec->sq_set_con_option("UseDynamicCursor", "True");
- _rec->sq_set_con_option("Scrollable", "True");
- return connected;
-}
-
-TT_driver TDB_recordset::str_to_driver(const char* tipo_db)
-{
- if (_stricmp(tipo_db, "") == 0)
- return TSDB_undefined;
- //! ODBC
- if (_stricmp(tipo_db, "ODBC") == 0)
- return TSDB_ODBC;
- //! Oracle
- if (_stricmp(tipo_db, "Oracle") == 0)
- return TSDB_Oracle;
- //! Microsoft SQL Server
- if (_stricmp(tipo_db, "MSSQL") == 0)
- return TSDB_MSSQL;
- //! InterBase or Firebird
- if (_stricmp(tipo_db, "InterBase") == 0)
- return TSDB_InterBase;
- //! SQLBase
- if (_stricmp(tipo_db, "SQLBase") == 0)
- return TSDB_SQLBase;
- //! IBM DB2
- if (_stricmp(tipo_db, "DB2") == 0)
- return TSDB_DB2;
- //! Informix
- if (_stricmp(tipo_db, "Informix") == 0)
- return TSDB_Informix;
- //! Sybase ASE
- if (_stricmp(tipo_db, "Sybase") == 0)
- return TSDB_Sybase;
- //! MySQL
- if (_stricmp(tipo_db, "MySQL") == 0)
- return TSDB_MySQL;
- //! PostgreSQL
- if (_stricmp(tipo_db, "PostgreSQL") == 0)
- return TSDB_PostgreSQL;
- //! SQLite
- if (_stricmp(tipo_db, "SQLite") == 0)
- return TSDB_SQLite;
- //! SQL Anywere
- if (_stricmp(tipo_db, "SQLAnywhere") == 0)
- return TSDB_SQLAnywhere;
- return TSDB_undefined;
-}
-
-bool TDB_recordset::set_loaded()
-{
- bool ok = false;
- if (!_sql.empty() && _rec->sq_exec(false))
- {
- ok = _is_loaded = true;
- _items = _rec->sq_items();
- _ncolumns = _rec->sq_get_num_fields();
- }
- return ok;
-}
-
-void TDB_recordset::unset_loaded()
-{
- _is_loaded = false;
- _items = 0;
- _ncolumns = 0;
- _current_row = 0;
-}
-
-void TDB_recordset::freeze(const bool on)
-{
- if (on)
- _rec->freeze();
- else
- _rec->defrost();
- _freezed = on;
-}
-
-bool TDB_recordset::connect(const char* db, const char* user, const char* pass, const char* tipo_db) const
-{
- return _rec->sq_connect(db, user, pass, str_to_driver(tipo_db)) == NOERR;
-}
-
-TRecnotype TDB_recordset::items() const
-{
- if (_is_loaded)
- return _items;
- return _rec->sq_items();
-}
-
-bool TDB_recordset::move_to(TRecnotype pos)
-{
- const TRecnotype tot = items();
- TRecnotype row = pos;
- bool ok = true;
-
- if (pos < 0)
- row = 0;
- if (pos > tot)
- row = tot;
-
- if (!_is_loaded)
- ok = set_loaded();
-
- if( ok && ((ok = _rec->sq_go(row))) )
- _current_row = pos;
-
- return ok;
-}
-
-bool TDB_recordset::move_next()
-{
- bool ok = true;
-
- if (!_is_loaded)
- ok = set_loaded();
-
- if (ok && _rec->sq_next())
- {
- _current_row = _rec->sq_pos();
- return true;
- }
- return false;
-}
-
-const TString_array TDB_recordset::get_next_row()
-{
- if (move_next())
- return get_row();
- return TString_array();
-}
-
-const TString_array TDB_recordset::get_row(TRecnotype n)
-{
- bool ok = true;
-
- // Get della riga attuale
- if (n == -1)
- n = current_row();
-
- else if (_current_row != n)
- ok = move_to(n); // Solo se non sono già su quella riga
-
- if (ok)
- {
- const unsigned ncol = _rec->sq_get_num_fields();
- _row.destroy();
- for (unsigned i = 0; i < ncol; i++)
- _row.add(TString(_rec->sq_get(i, false)));
- return _row;
- }
- // else
- _row.destroy();
- return _row;
-}
-
-void TDB_recordset::requery()
-{
- _items = 0;
- _current_row = -1;
- _row.destroy();
- _column.destroy();
-}
-
-unsigned TDB_recordset::columns() const
-{
- if (!_is_loaded)
- {
- TDB_recordset* my_self = const_cast(this);
- my_self->set_loaded();
- }
- return _ncolumns;
-}
-
-const TRecordset_column_info& TDB_recordset::column_info(const unsigned column) const
-{
- static TRecordset_column_info info;
- if (_is_loaded)
- {
- info._name = _rec->sq_get_name_field(column); // TString
- info._width = _rec->sq_get_width_field(column); // int
- info._type = _rec->sq_get_type_field(column); // TFieldtypes
- info._pos = column;
- }
- else
- {
- info._name.cut(0); // TString
- info._width = 0; // int
- info._type = _alfafld; // TFieldtypes
- info._pos = 0;
- }
- return info;
-}
-
-const TVariant& TDB_recordset::get(unsigned int column) const
-{
- static TVariant field = NULL_VARIANT;
- static unsigned int last_get = 0;
- if(!_freezed || column != last_get || field == NULL_VARIANT)
- {
- last_get = column;
- field = _rec->sq_get(column);
- }
- return field;
-}
-
-const TVariant& TDB_recordset::get(const char* name) const
-{
- return TRecordset::get(name);
-}
-
-bool TDB_recordset::is_connected() const
-{
- return _rec->sq_is_connect();
-}
-
-const TVariant& TDB_recordset::active_connection() const
-{
- static TVariant conn = NULL_VARIANT;
- conn.add(_dsn);
- conn.add(_usr);
- conn.add(_drv);
- return conn;
-}
-
-bool TDB_recordset::exec(const char* sql)
-{
- bool exec = false;
- if ((exec = _rec->sq_set_exec(sql))) {
- _is_loaded = true;
- _items = _rec->sq_items();
- }
- return exec;
-}
-
-bool TDB_recordset::commit() const
-{
- return _rec->sq_commit();
-}
-
-TDB_recordset::TDB_recordset(const char* sql, const bool freezed) : _freezed(freezed)
-{
- _current_row = -1;
- _rec = new SSimple_query();
- //_rec->sq_set_autocommit(true);
- _sql.cut(0);
- _is_loaded = false;
- _items = 0;
- _ncolumns = 0;
- freeze(freezed);
- set(sql);
-}
-
-TDB_recordset::~TDB_recordset()
-{
- delete _rec;
-}
diff --git a/src/include/tsdb.h b/src/include/tsdb.h
index 5b1f14d96..c739d6429 100644
--- a/src/include/tsdb.h
+++ b/src/include/tsdb.h
@@ -206,55 +206,4 @@ public:
virtual ~SSimple_query() = default;
};
-class TDB_recordset : public TRecordset
-{
- SSimple_query * _rec;
- TString _sql;
- TString _dsn, _usr, _pwd, _drv;
-
- bool _freezed;
- TRecnotype _current_row;
- TString_array _row, _column;
- bool _is_loaded;
- TRecnotype _items;
- unsigned _ncolumns;
-
-protected:
- // Parsa la stringa di connessione contenuta nella query
- bool set_connection(const char * conn_str) const;
- bool connect(const char * db, const char * user, const char * pass, const TT_driver tipo_db) const;
- bool connect(const char * db, const char * user, const char * pass, const char * tipo_db) const;
- static TT_driver str_to_driver(const char* tipo_db);
- bool set_loaded();
- void unset_loaded();
-
-public:
- void freeze(const bool on = true);
- void reset();
- bool set(const char* sql);
- bool move_to(TRecnotype pos) override; // Pure
- bool move_next() override;
- void requery() override; // da impl. Pure
- bool is_connected() const;
- unsigned columns() const override; // Pure
- TRecnotype items() const override; // Pure
- TRecnotype current_row() const override { return _current_row; } // Pure
- // Con il valore di default viene restituita la riga alla pos. attuale
- const TString_array get_row(TRecnotype n = -1);
- const TString_array get_next_row();
- const TString& query_text() const override { return _sql; }
- const TString& driver_version() const override { return _rec->sq_get_client_v(); };
- const TVariant& get(unsigned int column) const override; // Pure
- const TVariant& get(const char* name) const override; // Pure
- const TRecordset_column_info& column_info(unsigned int column) const override; // Pure
-
- // Ritorna la connessione attuale
- const TVariant& active_connection() const;
- bool exec(const char* sql);
- bool commit() const;
-
- TDB_recordset(const char * sql, bool freezed = false);
- ~TDB_recordset();
-};
-
#endif
\ No newline at end of file
diff --git a/src/ve/vetbatr.uml b/src/ve/vetbatr.uml
index 9ea16607f..67ebf1e6a 100755
--- a/src/ve/vetbatr.uml
+++ b/src/ve/vetbatr.uml
@@ -247,7 +247,7 @@ END
STRING ATR_CODARTDISP 20
BEGIN
- PROMPT 2 15 "Art. dispon. "
+ PROMPT 2 16 "Art. dispon. "
COPY USE ATR_CODART
INPUT CODART ATR_CODARTDISP
COPY DISPLAY ATR_CODART
@@ -261,7 +261,7 @@ END
STRING ATR_DESCARTDISP 50 34
BEGIN
- PROMPT 40 15 ""
+ PROMPT 40 16 ""
COPY USE ATR_DESCART
INPUT DESCR ATR_DESCARTDISP
COPY DISPLAY ATR_DESCART
@@ -273,7 +273,7 @@ END
STRING ATR_TIPORADISP 2
BEGIN
- PROMPT 2 16 "Tipo ora "
+ PROMPT 2 17 "Tipo ora "
USE &CIORE
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
@@ -285,7 +285,7 @@ END
CURRENCY ATR_PREZZODISP 12
BEGIN
- PROMPT 22 16 "Prezzo disponibilità "
+ PROMPT 22 17 "Prezzo disponibilità "
FLAGS "U"
FIELD R11
MODULE ci
diff --git a/src/ve/vetbprs.uml b/src/ve/vetbprs.uml
index 9293286da..6f067de05 100755
--- a/src/ve/vetbprs.uml
+++ b/src/ve/vetbprs.uml
@@ -297,7 +297,7 @@ END
STRING PRS_CODTRB 4
BEGIN
-PROMPT 2 20 "Cod. tributo "
+PROMPT 2 22 "Cod.tributo"
FIELD S10
FLAG "U"
USE %TRB
@@ -311,7 +311,7 @@ END
STRING PRS_CODTRB1 50 22
BEGIN
-PROMPT 25 20 ""
+PROMPT 22 22 ""
USE %TRB KEY 2
INPUT S0 PRS_CODTRB1
DISPLAY "Descrizione@50" S0
@@ -323,7 +323,7 @@ END
NUMBER PRS_CODCAUS770 2
BEGIN
- PROMPT 2 21 "Caus. 770 "
+ PROMPT 2 23 "Caus. 770 "
USE %CA7 SELECT I0==#PRS_CODTRB
INPUT CODTAB PRS_CODCAUS770
DISPLAY "Cod.caus." CODTAB
@@ -340,7 +340,7 @@ END
LISTBOX PRS_CODQUA 2 10
BEGIN
- PROMPT 20 21 "Quadro "
+ PROMPT 18 23 "Quadro "
HELP "Inserire il codice quadro"
ITEM "|" MESSAGE CLEAR,PRS_CAUSD
ITEM "LA|Quadro LA" MESSAGE ENABLE,PRS_CAUSD
@@ -352,7 +352,7 @@ END
STRING PRS_CAUSD 2
BEGIN
- PROMPT 50 21 "Causale LA "
+ PROMPT 41 23 "Causale LA"
FLAGS "U"
SHEET "Codice|Descrizione@320"
INPUT PRS_CAUSD
@@ -396,7 +396,7 @@ END
LISTBOX PRS_SEZIONE 6
BEGIN
- PROMPT 2 23 "Sezione per cooperative "
+ PROMPT 56 23 "Sezione per cooperative"
FIELD S11
ITEM "D|Dare"
ITEM "A|Avere"
diff --git a/src/ve/vetbrss.uml b/src/ve/vetbrss.uml
index c20f7fd29..bcc4249a8 100755
--- a/src/ve/vetbrss.uml
+++ b/src/ve/vetbrss.uml
@@ -443,7 +443,7 @@ END
STRING RSS_TIPOSTRA1 2
BEGIN
- PROMPT 1 17 "Tipo ora straordinaria 1 "
+ PROMPT 1 20 "Tipo ora straordinaria 1 "
USE &CIORE
INPUT CODTAB RSS_TIPOSTRA1
DISPLAY "Codice" CODTAB
@@ -455,19 +455,19 @@ END
NUMBER RSS_DOPOSTRA1 2
BEGIN
- PROMPT 41 17 "dopo ore "
+ PROMPT 41 20 "dopo ore "
FIELD R5
END
CURRENCY RSS_COSTOSTRA1 9
BEGIN
- PROMPT 59 17 "Costo "
+ PROMPT 59 20 "Costo "
FIELD R6
END
STRING RSS_TIPOSTRA2 2
BEGIN
- PROMPT 1 18 "Tipo ora straordinaria 2 "
+ PROMPT 1 21 "Tipo ora straordinaria 2 "
COPY USE RSS_TIPOSTRA1
INPUT CODTAB RSS_TIPOSTRA2
COPY DISPLAY RSS_TIPOSTRA1
@@ -478,13 +478,13 @@ END
NUMBER RSS_DOPOSTRA2 2
BEGIN
- PROMPT 41 18 "dopo ore "
+ PROMPT 41 21 "dopo ore "
FIELD R7
END
CURRENCY RSS_COSTOSTRA2 9
BEGIN
- PROMPT 59 18 "Costo "
+ PROMPT 59 21 "Costo "
FIELD R8
END
diff --git a/src/ve/vetbspp.uml b/src/ve/vetbspp.uml
index ef1f34d2e..fc6fa688f 100755
--- a/src/ve/vetbspp.uml
+++ b/src/ve/vetbspp.uml
@@ -269,14 +269,14 @@ END
NUMBER SPP_GRUPPOA 3
BEGIN
- PROMPT 2 12 "Conto acquisti "
+ PROMPT 2 15 "Conto acquisti "
FIELD I3
CHECKTYPE NORMAL
END
NUMBER SPP_CONTOA 3
BEGIN
- PROMPT 22 12 ""
+ PROMPT 22 15 ""
FIELD I4
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO=="")
INPUT GRUPPO SPP_GRUPPOA
@@ -293,7 +293,7 @@ BEGIN
NUMBER SPP_SOTTOA 6
BEGIN
- PROMPT 29 12 ""
+ PROMPT 29 15 ""
FIELD I5
USE LF_PCON SELECT SOTTOCONTO!=""
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
@@ -315,7 +315,7 @@ END
STRING SPP_DESCRCONTOA 50 35
BEGIN
- PROMPT 40 12 ""
+ PROMPT 40 15 ""
FLAG "U"
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
@@ -332,7 +332,7 @@ END
LIST SPP_TIPOSP 1 20
BEGIN
- PROMPT 2 14 "Tipologia di spesa/prestazione "
+ PROMPT 2 20 "Tipologia di spesa/prestazione "
FIELD S11[1,1]
ITEM " |Altro"
ITEM "I|Incasso"
@@ -342,7 +342,7 @@ END
STRING SPP_CODTRB 4
BEGIN
- PROMPT 2 15 "Cod. tributo "
+ PROMPT 2 21 "Cod. tributo "
FIELD S10
FLAG "U"
USE %TRB
@@ -356,7 +356,7 @@ END
STRING SPP_CODTRB1 50 22
BEGIN
- PROMPT 25 15 ""
+ PROMPT 25 21 ""
USE %TRB KEY 2
INPUT S0 SPP_CODTRB1
DISPLAY "Descrizione@50" S0
@@ -368,7 +368,7 @@ END
NUMBER SPP_CODCAUS770 2
BEGIN
- PROMPT 2 16 "Caus. 770 "
+ PROMPT 2 22 "Caus. 770 "
USE %CA7 SELECT I0==#SPP_CODTRB
INPUT CODTAB SPP_CODCAUS770
DISPLAY "Cod.caus." CODTAB
@@ -385,7 +385,7 @@ END
LISTBOX SPP_CODQUA 2 10
BEGIN
- PROMPT 20 16 "Quadro "
+ PROMPT 20 22 "Quadro "
HELP "Inserire il codice quadro"
ITEM "|" MESSAGE CLEAR,SPP_CAUSD
ITEM "LA|Quadro LA" MESSAGE ENABLE,SPP_CAUSD
@@ -397,7 +397,7 @@ END
STRING SPP_CAUSD 2
BEGIN
- PROMPT 50 16 "Causale LA "
+ PROMPT 50 22 "Causale LA "
FLAGS "U"
SHEET "Codice|Descrizione@320"
INPUT SPP_CAUSD
@@ -441,7 +441,7 @@ END
LISTBOX SPP_SEZIONE 6
BEGIN
- PROMPT 2 17 "Sezione per cooperative "
+ PROMPT 2 23 "Sezione per cooperative "
FIELD S11[5,5]
ITEM "D|Dare"
ITEM "A|Avere"
@@ -449,7 +449,7 @@ END
STRING SPP_TIPOCAS 4
BEGIN
- PROMPT 2 18 "Tipo Cassa Previdenziale "
+ PROMPT 2 24 "Tipo Cassa Previdenziale "
FLAGS "U"
SHEET "Codice|Descrizione@320"
INPUT SPP_TIPOCAS
@@ -484,7 +484,7 @@ END
BOOLEAN SPP_SOGGRIT
BEGIN
- PROMPT 40 18 "Soggetto a ritenuta "
+ PROMPT 40 24 "Soggetto a ritenuta"
FLAGS "D"
FIELD B0
GROUP 4
@@ -492,7 +492,7 @@ END
BOOLEAN SPP_CALCRIT
BEGIN
- PROMPT 2 19 "Spesa rientrante nel calcolo ritenuta "
+ PROMPT 60 24 "Soggetto al calcolo rit."
FLAGS "D"
FIELD B1
GROUP 4