transactd 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. checksums.yaml +7 -0
  2. data/BUILD_UNIX-JA +174 -0
  3. data/BUILD_WIN-JA +256 -0
  4. data/CMakeLists.txt +96 -0
  5. data/COPYING +339 -0
  6. data/README +406 -0
  7. data/README-JA +424 -0
  8. data/bin/common/tdclc_32_1_0.dll +0 -0
  9. data/bin/common/tdclc_64_1_0.dll +0 -0
  10. data/build/common/check_for_link_iconv.cmake +73 -0
  11. data/build/common/copyifgreater.cmd +30 -0
  12. data/build/common/copyifgreater.js +290 -0
  13. data/build/common/get_boost_libs.cmake +106 -0
  14. data/build/common/get_ruby_path.cmake +115 -0
  15. data/build/common/options.cmake +127 -0
  16. data/build/common/smart_install.cmake +263 -0
  17. data/build/common/system.cmake +122 -0
  18. data/build/common/transactd.rc.in +52 -0
  19. data/build/common/transactd_cl_common.cmake +101 -0
  20. data/build/common/transactd_cl_output.cmake +93 -0
  21. data/build/common/transactd_common.cmake +237 -0
  22. data/build/common/transactd_required.cmake +28 -0
  23. data/build/swig/ruby/generate.cmake.in +35 -0
  24. data/build/swig/ruby/generate.cmd.in +19 -0
  25. data/build/swig/ruby/ruby.swg +101 -0
  26. data/build/swig/tdcl.i +188 -0
  27. data/build/tdclc/BUILDNUMBER.txt +1 -0
  28. data/build/tdclc/CMakeLists.txt +170 -0
  29. data/build/tdclc/tdclc_32.cbproj +181 -0
  30. data/build/tdclc/tdclc_64.cbproj +205 -0
  31. data/build/tdclcpp/BUILDNUMBER.txt +1 -0
  32. data/build/tdclcpp/CMakeLists.txt +142 -0
  33. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +239 -0
  34. data/build/tdclcpp/tdclcpp_bcb_64.cbproj +304 -0
  35. data/build/tdclrb/BUILDNUMBER.txt +1 -0
  36. data/build/tdclrb/CMakeLists.txt +258 -0
  37. data/build/tdclrb/GEM_VERSION +3 -0
  38. data/build/tdclrb/bldgem/extconf.rb +123 -0
  39. data/build/tdclrb/gem/INSTALLLOG.win32 +9 -0
  40. data/build/tdclrb/gem/Makefile.win32-VS +65 -0
  41. data/build/tdclrb/gem/Makefile.win32-prebuilt +48 -0
  42. data/build/tdclrb/gem/detect.rb +31 -0
  43. data/build/tdclrb/gem/helper.rb +113 -0
  44. data/build/tdclrb/gem/transactd.rb +22 -0
  45. data/build/tdclrb/gem_output.cmake +44 -0
  46. data/source/bzs/db/IBlobBuffer.h +51 -0
  47. data/source/bzs/db/blobBuffer.h +177 -0
  48. data/source/bzs/db/blobStructs.h +85 -0
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +52 -0
  50. data/source/bzs/db/engine/mysql/bookmark.h +195 -0
  51. data/source/bzs/db/engine/mysql/database.cpp +1882 -0
  52. data/source/bzs/db/engine/mysql/database.h +465 -0
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +303 -0
  54. data/source/bzs/db/engine/mysql/dbManager.h +143 -0
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +75 -0
  56. data/source/bzs/db/engine/mysql/errorMessage.h +43 -0
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +158 -0
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +349 -0
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +89 -0
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +171 -0
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +169 -0
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +35 -0
  63. data/source/bzs/db/engine/mysql/percentageKey.h +260 -0
  64. data/source/bzs/db/protocol/ICommandExecuter.h +49 -0
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +689 -0
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +228 -0
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +437 -0
  68. data/source/bzs/db/protocol/tdap/btrDate.h +227 -0
  69. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +127 -0
  70. data/source/bzs/db/protocol/tdap/client/client.cpp +106 -0
  71. data/source/bzs/db/protocol/tdap/client/client.h +292 -0
  72. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +144 -0
  73. data/source/bzs/db/protocol/tdap/client/connMgr.h +82 -0
  74. data/source/bzs/db/protocol/tdap/client/database.cpp +863 -0
  75. data/source/bzs/db/protocol/tdap/client/database.h +118 -0
  76. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +100 -0
  77. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +1640 -0
  78. data/source/bzs/db/protocol/tdap/client/dbDef.h +135 -0
  79. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +434 -0
  80. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +92 -0
  81. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +98 -0
  82. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +174 -0
  83. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +91 -0
  84. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +140 -0
  85. data/source/bzs/db/protocol/tdap/client/fileDDF.h +86 -0
  86. data/source/bzs/db/protocol/tdap/client/filter.cpp +527 -0
  87. data/source/bzs/db/protocol/tdap/client/filter.h +154 -0
  88. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +137 -0
  89. data/source/bzs/db/protocol/tdap/client/indexDDF.h +84 -0
  90. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +724 -0
  91. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +123 -0
  92. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +899 -0
  93. data/source/bzs/db/protocol/tdap/client/nsTable.h +199 -0
  94. data/source/bzs/db/protocol/tdap/client/request.h +198 -0
  95. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +58 -0
  96. data/source/bzs/db/protocol/tdap/client/sharedData.h +56 -0
  97. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +574 -0
  98. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +53 -0
  99. data/source/bzs/db/protocol/tdap/client/stringConverter.h +627 -0
  100. data/source/bzs/db/protocol/tdap/client/table.cpp +2613 -0
  101. data/source/bzs/db/protocol/tdap/client/table.h +221 -0
  102. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +1096 -0
  103. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +179 -0
  104. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +40 -0
  105. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +11 -0
  106. data/source/bzs/db/protocol/tdap/myDateTime.cpp +500 -0
  107. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +184 -0
  108. data/source/bzs/db/protocol/tdap/mysql/characterset.h +60 -0
  109. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +284 -0
  110. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +53 -0
  111. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +383 -0
  112. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +106 -0
  113. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +680 -0
  114. data/source/bzs/db/protocol/tdap/mysql/request.h +202 -0
  115. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1020 -0
  116. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +141 -0
  117. data/source/bzs/db/protocol/tdap/tdapRequest.h +190 -0
  118. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +295 -0
  119. data/source/bzs/db/protocol/tdap/tdapSchema.h +558 -0
  120. data/source/bzs/db/protocol/tdap/tdapcapi.h +423 -0
  121. data/source/bzs/db/transactd/appBuilderImple.h +55 -0
  122. data/source/bzs/db/transactd/appModule.cpp +183 -0
  123. data/source/bzs/db/transactd/appModule.h +80 -0
  124. data/source/bzs/db/transactd/connManager.cpp +201 -0
  125. data/source/bzs/db/transactd/connManager.h +60 -0
  126. data/source/bzs/db/transactd/connectionRecord.h +69 -0
  127. data/source/bzs/db/transactd/transactd.cpp +325 -0
  128. data/source/bzs/env/compiler.h +135 -0
  129. data/source/bzs/env/crosscompile.cpp +130 -0
  130. data/source/bzs/env/crosscompile.h +150 -0
  131. data/source/bzs/env/fileopen.h +36 -0
  132. data/source/bzs/env/mbcswchrLinux.cpp +40 -0
  133. data/source/bzs/env/mbcswchrLinux.h +88 -0
  134. data/source/bzs/env/tstring.h +183 -0
  135. data/source/bzs/example/changeSchema.cpp +117 -0
  136. data/source/bzs/example/changeSchema_c.cpp +78 -0
  137. data/source/bzs/example/connection_pool_c.cpp +171 -0
  138. data/source/bzs/example/createDatabase.cpp +305 -0
  139. data/source/bzs/example/createDatabase_c.cpp +202 -0
  140. data/source/bzs/example/deleteRecords.cpp +87 -0
  141. data/source/bzs/example/deleteRecords_c.cpp +57 -0
  142. data/source/bzs/example/dropDatabase.cpp +59 -0
  143. data/source/bzs/example/dropDatabase_c.cpp +34 -0
  144. data/source/bzs/example/insertRecords.cpp +212 -0
  145. data/source/bzs/example/insertRecords_c.cpp +153 -0
  146. data/source/bzs/example/readRecords.cpp +141 -0
  147. data/source/bzs/example/readRecords_c.cpp +107 -0
  148. data/source/bzs/example/updateRecords.cpp +99 -0
  149. data/source/bzs/example/updateRecords_c.cpp +71 -0
  150. data/source/bzs/example/update_with_transaction.cpp +104 -0
  151. data/source/bzs/example/update_with_transaction_c.cpp +80 -0
  152. data/source/bzs/netsvc/client/tcpClient.cpp +226 -0
  153. data/source/bzs/netsvc/client/tcpClient.h +489 -0
  154. data/source/bzs/netsvc/server/IAppModule.h +94 -0
  155. data/source/bzs/netsvc/server/iserver.h +65 -0
  156. data/source/bzs/netsvc/server/serverCpt.cpp +522 -0
  157. data/source/bzs/netsvc/server/serverCpt.h +88 -0
  158. data/source/bzs/netsvc/server/serverPipe.cpp +705 -0
  159. data/source/bzs/netsvc/server/serverPipe.h +96 -0
  160. data/source/bzs/netsvc/server/serverTpool.cpp +416 -0
  161. data/source/bzs/netsvc/server/serverTpool.h +84 -0
  162. data/source/bzs/rtl/benchmark.cpp +96 -0
  163. data/source/bzs/rtl/benchmark.h +65 -0
  164. data/source/bzs/rtl/datetime.cpp +375 -0
  165. data/source/bzs/rtl/datetime.h +53 -0
  166. data/source/bzs/rtl/debuglog.cpp +106 -0
  167. data/source/bzs/rtl/debuglog.h +97 -0
  168. data/source/bzs/rtl/exception.h +116 -0
  169. data/source/bzs/rtl/stl_uty.cpp +35 -0
  170. data/source/bzs/rtl/stl_uty.h +29 -0
  171. data/source/bzs/rtl/stringBuffers.cpp +101 -0
  172. data/source/bzs/rtl/stringBuffers.h +58 -0
  173. data/source/bzs/rtl/strtrim.cpp +135 -0
  174. data/source/bzs/rtl/strtrim.h +46 -0
  175. data/source/bzs/test/tdclatl/bench_tdclatl.js +445 -0
  176. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +375 -0
  177. data/source/bzs/test/tdclrb/prepare.rb +226 -0
  178. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +172 -0
  179. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +208 -0
  180. data/source/bzs/test/tdclrb/transactd_spec.rb +1536 -0
  181. data/source/bzs/test/transactdBench/transactdBench.cpp +430 -0
  182. data/source/bzs/test/transactdBench/transactdBench2.cpp +342 -0
  183. data/source/bzs/test/trdclengn/test_trdclengn.cpp +2030 -0
  184. data/source/global/tdclatl/Database.cpp +503 -0
  185. data/source/global/tdclatl/Database.h +139 -0
  186. data/source/global/tdclatl/DbDef.cpp +242 -0
  187. data/source/global/tdclatl/DbDef.h +79 -0
  188. data/source/global/tdclatl/Field.cpp +92 -0
  189. data/source/global/tdclatl/Field.h +59 -0
  190. data/source/global/tdclatl/FieldDef.cpp +238 -0
  191. data/source/global/tdclatl/FieldDef.h +87 -0
  192. data/source/global/tdclatl/Flags.cpp +111 -0
  193. data/source/global/tdclatl/Flags.h +55 -0
  194. data/source/global/tdclatl/KeyDef.cpp +51 -0
  195. data/source/global/tdclatl/KeyDef.h +55 -0
  196. data/source/global/tdclatl/KeySegment.cpp +55 -0
  197. data/source/global/tdclatl/Table.cpp +600 -0
  198. data/source/global/tdclatl/Table.h +144 -0
  199. data/source/global/tdclatl/TableDef.cpp +291 -0
  200. data/source/global/tdclatl/TableDef.h +86 -0
  201. data/source/global/tdclatl/TdVersion.cpp +74 -0
  202. data/source/global/tdclatl/TdVersion.h +54 -0
  203. data/source/global/tdclatl/_IDatabaseEvents_CP.h +113 -0
  204. data/source/global/tdclatl/dllmain.cpp +30 -0
  205. data/source/global/tdclatl/dllmain.h +27 -0
  206. data/source/global/tdclatl/keySegment.h +57 -0
  207. data/source/global/tdclatl/resource.h +0 -0
  208. data/source/global/tdclatl/stdafx.cpp +2 -0
  209. data/source/global/tdclatl/stdafx.h +25 -0
  210. data/source/global/tdclatl/targetver.h +4 -0
  211. data/source/global/tdclatl/tdclatl.cpp +68 -0
  212. data/source/global/tdclatl/tdclatl.def +10 -0
  213. data/source/global/tdclatl/tdclatl.idl +1035 -0
  214. data/source/linux/charsetConvert.h +112 -0
  215. data/source/linux/linuxTypes.h +33 -0
  216. data/source/linux/tchar.h +428 -0
  217. data/transactd.gemspec +97 -0
  218. metadata +267 -0
@@ -0,0 +1,87 @@
1
+ #pragma once
2
+ /*=================================================================
3
+ Copyright (C) 2013 BizStation Corp All rights reserved.
4
+
5
+ This program is free software; you can redistribute it and/or
6
+ modify it under the terms of the GNU General Public License
7
+ as published by the Free Software Foundation; either version 2
8
+ of the License, or (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18
+ 02111-1307, USA.
19
+ =================================================================*/
20
+ #include "resource.h"
21
+
22
+ #include "tdclatl_i.h"
23
+ #include <bzs/db/protocol/tdap/tdapSchema.h>
24
+ #include <bzs/db/protocol/tdap/client/dbDef.h>
25
+ using namespace ATL;
26
+
27
+ class ATL_NO_VTABLE CFieldDef : public CComObjectRootEx<CComSingleThreadModel>,
28
+ public CComCoClass<CFieldDef, &CLSID_FieldDef>,
29
+ public IDispatchImpl<IFieldDef, &IID_IFieldDef, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>
30
+ {
31
+ bzs::db::protocol::tdap::fielddef* fielddef(){return &(*m_tabledefPtr)->fieldDefs[m_index];}
32
+ public:
33
+ CFieldDef():m_tabledefPtr(NULL) {}
34
+ bzs::db::protocol::tdap::tabledef** m_tabledefPtr;
35
+ short m_index;
36
+
37
+ BEGIN_COM_MAP(CFieldDef)
38
+ COM_INTERFACE_ENTRY(IFieldDef)
39
+ COM_INTERFACE_ENTRY(IDispatch)
40
+ END_COM_MAP()
41
+
42
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
43
+
44
+ HRESULT FinalConstruct() {return S_OK;}
45
+
46
+ void FinalRelease() {}
47
+
48
+ public:
49
+
50
+ STDMETHOD(get_Name)(BSTR* Value);
51
+ STDMETHOD(get_Type)(eFieldType* Value);
52
+ STDMETHOD(get_Len)(short* Value);
53
+ STDMETHOD(get_Decimals)(unsigned char* Value);
54
+ STDMETHOD(get_Max)(double* Value);
55
+ STDMETHOD(get_Min)(double* Value);
56
+ STDMETHOD(get_DefValue)(double* Value);
57
+ STDMETHOD(get_LookTable)(unsigned char* Value);
58
+ STDMETHOD(get_LookField)(unsigned char* Value);
59
+ STDMETHOD(get_LookViewField)(short Index, unsigned char* Value);
60
+ STDMETHOD(get_EnableFlags)(IFlags** Value);
61
+
62
+ STDMETHOD(put_Decimals)(unsigned char Value);
63
+ STDMETHOD(put_DefValue)(double Value);
64
+ STDMETHOD(put_EnableFlags)(IFlags* Value);
65
+ STDMETHOD(put_Len)(short Value);
66
+ STDMETHOD(put_LookField)(unsigned char Value);
67
+ STDMETHOD(put_LookTable)(unsigned char Value);
68
+ STDMETHOD(put_LookViewField)(short Index, unsigned char Value);
69
+ STDMETHOD(put_Max)(double Value);
70
+ STDMETHOD(put_Min)(double Value);
71
+ STDMETHOD(put_Name)(BSTR Value);
72
+ STDMETHOD(put_Type)(eFieldType Value);
73
+ STDMETHOD(get_Keylen)(unsigned short* Value);
74
+ STDMETHOD(put_Keylen)(unsigned short Value);
75
+ STDMETHOD(get_NullValue)(unsigned short* Value);
76
+ STDMETHOD(put_NullValue)(unsigned short Value);
77
+ STDMETHOD(get_Align)(unsigned int* Value);
78
+ STDMETHOD(get_TypeName)( BSTR* Value);
79
+ STDMETHOD(get_IsStringType)( VARIANT_BOOL* Value);
80
+ STDMETHOD(get_CharsetIndex)(eCharset* Value);
81
+ STDMETHOD(put_CharsetIndex)(eCharset Value);
82
+ STDMETHOD(get_CodePage)(unsigned int* Value);
83
+ STDMETHOD(get_CharNum)(unsigned int* Value);
84
+ STDMETHOD(SetLenByCharnum)(unsigned short Value);
85
+
86
+
87
+ };
@@ -0,0 +1,111 @@
1
+ /*=================================================================
2
+ Copyright (C) 2013 BizStation Corp All rights reserved.
3
+
4
+ This program is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU General Public License
6
+ as published by the Free Software Foundation; either version 2
7
+ of the License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ 02111-1307, USA.
18
+ =================================================================*/
19
+ #include "stdafx.h"
20
+ #include "Flags.h"
21
+
22
+ STDMETHODIMP CFlags::get_Bits(short Index, VARIANT_BOOL* Value)
23
+ {
24
+ switch (Index)
25
+ {
26
+ case 0: *Value = m_flags.bit0;
27
+ break;
28
+ case 1: *Value = m_flags.bit1;
29
+ break;
30
+ case 2: *Value = m_flags.bit2;
31
+ break;
32
+ case 3: *Value = m_flags.bit3;
33
+ break;
34
+ case 4: *Value = m_flags.bit4;
35
+ break;
36
+ case 5: *Value = m_flags.bit5;
37
+ break;
38
+ case 6: *Value = m_flags.bit6;
39
+ break;
40
+ case 7: *Value = m_flags.bit7;
41
+ break;
42
+ case 8: *Value = m_flags.bit8;
43
+ break;
44
+ case 9: *Value = m_flags.bit9;
45
+ break;
46
+ case 10: *Value = m_flags.bitA;
47
+ break;
48
+ case 11: *Value = m_flags.bitB;
49
+ break;
50
+ case 12: *Value = m_flags.bitC;
51
+ break;
52
+ case 13: *Value = m_flags.bitD;
53
+ break;
54
+ case 14: *Value = m_flags.bitE;
55
+ break;
56
+ case 15: *Value = m_flags.bitF;
57
+ break;
58
+ }
59
+ return S_OK;
60
+ }
61
+
62
+ STDMETHODIMP CFlags::put_Bits(short Index, VARIANT_BOOL Value)
63
+ {
64
+ switch (Index)
65
+ {
66
+ case 0: m_flags.bit0 = Value;
67
+ break;
68
+ case 1: m_flags.bit1 = Value;
69
+ break;
70
+ case 2: m_flags.bit2 = Value;
71
+ break;
72
+ case 3: m_flags.bit3 = Value;
73
+ break;
74
+ case 4: m_flags.bit4 = Value;
75
+ break;
76
+ case 5: m_flags.bit5 = Value;
77
+ break;
78
+ case 6: m_flags.bit6 = Value;
79
+ break;
80
+ case 7: m_flags.bit7 = Value;
81
+ break;
82
+ case 8: m_flags.bit8 = Value;
83
+ break;
84
+ case 9: m_flags.bit9 = Value;
85
+ break;
86
+ case 10: m_flags.bitA = Value;
87
+ break;
88
+ case 11: m_flags.bitB = Value;
89
+ break;
90
+ case 12: m_flags.bitC = Value;
91
+ break;
92
+ case 13: m_flags.bitD = Value;
93
+ break;
94
+ case 14: m_flags.bitE = Value;
95
+ break;
96
+ case 15: m_flags.bitF = Value;
97
+ break;
98
+ }
99
+
100
+ return S_OK;
101
+ }
102
+
103
+ STDMETHODIMP CFlags::All(unsigned short* Value)
104
+ {
105
+ *Value = m_flags.all;
106
+ return S_OK;
107
+ }
108
+
109
+ STDMETHODIMP CFlags::SetBit(short Index, VARIANT_BOOL Value) {return put_Bits(Index, Value);}
110
+
111
+ STDMETHODIMP CFlags::GetBit(short Index, VARIANT_BOOL* Value) {return get_Bits(Index, Value);}
@@ -0,0 +1,55 @@
1
+ #pragma once
2
+ /*=================================================================
3
+ Copyright (C) 2013 BizStation Corp All rights reserved.
4
+
5
+ This program is free software; you can redistribute it and/or
6
+ modify it under the terms of the GNU General Public License
7
+ as published by the Free Software Foundation; either version 2
8
+ of the License, or (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18
+ 02111-1307, USA.
19
+ =================================================================*/
20
+ #include "resource.h"
21
+
22
+ #include "tdclatl_i.h"
23
+ #include <bzs/db/protocol/tdap/tdapSchema.h>
24
+
25
+ using namespace ATL;
26
+
27
+ class ATL_NO_VTABLE CFlags : public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CFlags, &CLSID_Flags>,
28
+ public IDispatchImpl<IFlags, &IID_IFlags, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>
29
+ {
30
+ public:
31
+ CFlags() {}
32
+ bzs::db::protocol::tdap::FLAGS m_flags;
33
+
34
+ BEGIN_COM_MAP(CFlags)
35
+ COM_INTERFACE_ENTRY(IFlags)
36
+ COM_INTERFACE_ENTRY(IDispatch)
37
+ END_COM_MAP()
38
+
39
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
40
+
41
+ HRESULT FinalConstruct() {return S_OK;}
42
+
43
+ void FinalRelease() {}
44
+
45
+ public:
46
+
47
+ STDMETHOD(get_Bits)(short Index, VARIANT_BOOL* Value);
48
+ STDMETHOD(put_Bits)(short Index, VARIANT_BOOL Value);
49
+
50
+ STDMETHOD(All)(unsigned short* Value);
51
+
52
+ STDMETHOD(GetBit)(short Index, VARIANT_BOOL* Value);
53
+ STDMETHOD(SetBit)(short Index, VARIANT_BOOL Value);
54
+
55
+ };
@@ -0,0 +1,51 @@
1
+ /*=================================================================
2
+ Copyright (C) 2013 BizStation Corp All rights reserved.
3
+
4
+ This program is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU General Public License
6
+ as published by the Free Software Foundation; either version 2
7
+ of the License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ 02111-1307, USA.
18
+ =================================================================*/
19
+ #include "stdafx.h"
20
+ #include "KeyDef.h"
21
+ #include "KeySegment.h"
22
+
23
+ STDMETHODIMP CKeyDef::get_SegmentCount(unsigned char* Value)
24
+ {
25
+ *Value = keydef()->segmentCount;
26
+ return S_OK;
27
+ };
28
+
29
+ STDMETHODIMP CKeyDef::put_SegmentCount(unsigned char Value)
30
+ {
31
+ keydef()->segmentCount = Value;
32
+ return S_OK;
33
+ }
34
+
35
+ STDMETHODIMP CKeyDef::Segments(short Index, IKeySegment** Value)
36
+ {
37
+ CComObject<CKeySegment> *piObj;
38
+ CComObject<CKeySegment>::CreateInstance(&piObj);
39
+ if (piObj)
40
+ {
41
+ piObj->m_tabledefPtr = m_tabledefPtr;
42
+ piObj->m_keyIndex = m_index;
43
+ piObj->m_index = Index;
44
+ IKeySegment* sg;
45
+ piObj->QueryInterface(IID_IKeySegment, (void**)&sg);
46
+ _ASSERTE(sg);
47
+ *Value = piObj;
48
+ }else
49
+ *Value = 0;
50
+ return S_OK;
51
+ }
@@ -0,0 +1,55 @@
1
+ #pragma once
2
+ /*=================================================================
3
+ Copyright (C) 2013 BizStation Corp All rights reserved.
4
+
5
+ This program is free software; you can redistribute it and/or
6
+ modify it under the terms of the GNU General Public License
7
+ as published by the Free Software Foundation; either version 2
8
+ of the License, or (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18
+ 02111-1307, USA.
19
+ =================================================================*/
20
+ #include "resource.h"
21
+
22
+ #include "tdclatl_i.h"
23
+ #include <bzs/db/protocol/tdap/tdapSchema.h>
24
+ #include <bzs/db/protocol/tdap/client/dbDef.h>
25
+ using namespace ATL;
26
+
27
+ class ATL_NO_VTABLE CKeyDef : public CComObjectRootEx<CComSingleThreadModel>,
28
+ public CComCoClass<CKeyDef, &CLSID_KeyDef>,
29
+ public IDispatchImpl<IKeyDef, &IID_IKeyDef, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>
30
+ {
31
+ bzs::db::protocol::tdap::keydef* keydef(){return &(*m_tabledefPtr)->keyDefs[m_index];}
32
+ public:
33
+ CKeyDef():m_tabledefPtr(NULL) {}
34
+ bzs::db::protocol::tdap::tabledef** m_tabledefPtr;
35
+ short m_index;
36
+
37
+ BEGIN_COM_MAP(CKeyDef)
38
+ COM_INTERFACE_ENTRY(IKeyDef)
39
+ COM_INTERFACE_ENTRY(IDispatch)
40
+ END_COM_MAP()
41
+
42
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
43
+
44
+ HRESULT FinalConstruct() {return S_OK;}
45
+
46
+ void FinalRelease() {}
47
+
48
+ public:
49
+
50
+
51
+ STDMETHOD(get_SegmentCount)(unsigned char* Value);
52
+ STDMETHOD(Segments)(short Index, IKeySegment** Value);
53
+ STDMETHOD(put_SegmentCount)(unsigned char Value);
54
+
55
+ };
@@ -0,0 +1,55 @@
1
+ /*=================================================================
2
+ Copyright (C) 2013 BizStation Corp All rights reserved.
3
+
4
+ This program is free software; you can redistribute it and/or
5
+ modify it under the terms of the GNU General Public License
6
+ as published by the Free Software Foundation; either version 2
7
+ of the License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
+ 02111-1307, USA.
18
+ =================================================================*/
19
+ #include "stdafx.h"
20
+ #include "KeySegment.h"
21
+ #include "Flags.h"
22
+
23
+ STDMETHODIMP CKeySegment::get_FieldNum(unsigned char* Value)
24
+ {
25
+ *Value = segment()->fieldNum;
26
+ return S_OK;
27
+ }
28
+
29
+ STDMETHODIMP CKeySegment::get_Flags(IFlags** Value)
30
+ {
31
+ CComObject<CFlags> *piObj;
32
+ CComObject<CFlags>::CreateInstance(&piObj);
33
+ if (piObj)
34
+ {
35
+ piObj->m_flags = segment()->flags;
36
+ IFlags* fl;
37
+ piObj->QueryInterface(IID_IFlags, (void**)&fl);
38
+ _ASSERTE(fl);
39
+ *Value = piObj;
40
+ }else
41
+ *Value = 0;
42
+ return S_OK;
43
+ }
44
+
45
+ STDMETHODIMP CKeySegment::put_FieldNum(unsigned char Value)
46
+ {
47
+ segment()->fieldNum = Value;
48
+ return S_OK;
49
+ }
50
+
51
+ STDMETHODIMP CKeySegment::put_Flags(IFlags* Value)
52
+ {
53
+ Value->All(&segment()->flags.all);
54
+ return S_OK;
55
+ }