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,242 @@
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 "DbDef.h"
21
+ #include "database.h"
22
+ #include "TableDef.h"
23
+ #include "FieldDef.h"
24
+ #include "KeyDef.h"
25
+ #include "Field.h"
26
+
27
+ using namespace bzs::db::protocol::tdap;
28
+
29
+
30
+
31
+ STDMETHODIMP CDbDef::get_TableCount(short* Value)
32
+ {
33
+ *Value = m_dbDef->tableCount();
34
+ return S_OK;
35
+ }
36
+
37
+ STDMETHODIMP CDbDef::TableDef(short Index, ITableDef** Value)
38
+ {
39
+ if (!m_dbDef->tableDefs(Index))
40
+ return Error("Invalid index.", IID_IDbDef);
41
+
42
+ CComObject<CTableDef> *piObj = NULL;
43
+ CComObject<CTableDef>::CreateInstance(&piObj);
44
+ if (piObj)
45
+ {
46
+ piObj->m_tabledefPtr = m_dbDef->tableDefPtr(Index);
47
+ ITableDef* tbd;
48
+ piObj->QueryInterface(IID_ITableDef, (void**)&tbd);
49
+ _ASSERTE(tbd);
50
+ *Value = tbd;
51
+ }
52
+ else
53
+ *Value = 0;
54
+
55
+ return S_OK;
56
+ }
57
+
58
+ STDMETHODIMP CDbDef::InsertTable(short index, ITableDef** Param1)
59
+ {
60
+ tabledef TableDef;
61
+ memset(&TableDef, 0, sizeof(TableDef));
62
+ TableDef.setTableName(L"new_table");
63
+ TableDef.setFileName(L"new_table.dat");
64
+ TableDef.id = index;
65
+ TableDef.keyCount = 0;
66
+ TableDef.fieldCount = 0;
67
+ TableDef.flags.all = 0;
68
+ TableDef.primaryKeyNum = -1;
69
+ TableDef.parentKeyNum = -1;
70
+ TableDef.replicaKeyNum = -1;
71
+ TableDef.pageSize = 2048;
72
+
73
+ m_dbDef->insertTable(&TableDef);
74
+ this->TableDef(index, Param1);
75
+ return S_OK;
76
+
77
+ }
78
+
79
+ STDMETHODIMP CDbDef::DeleteField(short TableIndex, short FieldIndex)
80
+ {
81
+ m_dbDef->deleteField(TableIndex, FieldIndex);
82
+ return S_OK;
83
+ }
84
+
85
+ STDMETHODIMP CDbDef::DeleteKey(short TableIndex, short KeyIndex)
86
+ {
87
+ m_dbDef->deleteKey(TableIndex, KeyIndex);
88
+ return S_OK;
89
+ }
90
+
91
+ STDMETHODIMP CDbDef::InsertField(short TableIndex, short InsertIndex, IFieldDef** Param3)
92
+
93
+ {
94
+ fielddef* fdPtr = m_dbDef->insertField(TableIndex, InsertIndex);
95
+ if (!fdPtr)
96
+ return Error("Invalid index.", IID_IDbDef);
97
+
98
+ CComObject<CFieldDef> *piObj;
99
+ CComObject<CFieldDef>::CreateInstance(&piObj);
100
+ if (piObj)
101
+ {
102
+ piObj->m_tabledefPtr = m_dbDef->tableDefPtr(TableIndex);
103
+ piObj->m_index = InsertIndex;
104
+ IFieldDef* fd;
105
+ piObj->QueryInterface(IID_IFieldDef, (void**)&fd);
106
+ _ASSERTE(fd);
107
+ *Param3 = piObj;
108
+ }else
109
+ *Param3 = 0;
110
+
111
+ return S_OK;
112
+ }
113
+
114
+ STDMETHODIMP CDbDef::InsertKey(short TableIndex, short InsertIndex, IKeyDef** Param3)
115
+
116
+ {
117
+ keydef* keyPtr = m_dbDef->insertKey(TableIndex, InsertIndex);
118
+ if (!keyPtr)
119
+ return Error("Invalid index.", IID_IDbDef);
120
+ CComObject<CKeyDef> *piObj;
121
+ CComObject<CKeyDef>::CreateInstance(&piObj);
122
+ if (piObj)
123
+ {
124
+ piObj->m_tabledefPtr = m_dbDef->tableDefPtr(TableIndex);;
125
+ piObj->m_index = InsertIndex;
126
+ IKeyDef* kb;
127
+ piObj->QueryInterface(IID_IKeyDef, (void**)&kb);
128
+ _ASSERTE(kb);
129
+ *Param3 = piObj;
130
+ }else
131
+ *Param3 = 0;
132
+ return S_OK;
133
+ }
134
+
135
+ STDMETHODIMP CDbDef::UpDateTableDef(short TableIndex)
136
+ {
137
+ m_dbDef->updateTableDef(TableIndex);
138
+ return S_OK;
139
+ }
140
+
141
+ STDMETHODIMP CDbDef::CompAsBackup(short TableIndex, VARIANT_BOOL* Value)
142
+ {
143
+ *Value = m_dbDef->compAsBackup(TableIndex);
144
+ return S_OK;
145
+ }
146
+
147
+ STDMETHODIMP CDbDef::DeleteTable(short TableIndex)
148
+ {
149
+ m_dbDef->deleteTable(TableIndex);
150
+ return S_OK;
151
+ }
152
+
153
+ STDMETHODIMP CDbDef::TableNumByName(BSTR Name, short* Value)
154
+ {
155
+ *Value = m_dbDef->tableNumByName(Name);
156
+ return S_OK;
157
+ }
158
+
159
+ STDMETHODIMP CDbDef::FieldNumByName( short TableIndex, BSTR Name, short* Value)
160
+ {
161
+ *Value = m_dbDef->fieldNumByName(TableIndex, Name);
162
+ return S_OK;
163
+ }
164
+
165
+ STDMETHODIMP CDbDef::FieldValidLength( eFieldQuery Query, short FieldType, unsigned int* Value)
166
+ {
167
+ *Value = m_dbDef->fieldValidLength((client::eFieldQuery)Query, (uchar_td)FieldType);
168
+ return S_OK;
169
+ }
170
+
171
+ STDMETHODIMP CDbDef::FindKeynumByFieldNum( short TableIndex, short Index, unsigned short* Value)
172
+ {
173
+ *Value = m_dbDef->findKeynumByFieldNum(TableIndex, Index);
174
+ return S_OK;
175
+ }
176
+
177
+ STDMETHODIMP CDbDef::GetRecordLen( short TableIndex, unsigned short* Value)
178
+ {
179
+ *Value = m_dbDef->getRecordLen(TableIndex);
180
+ return S_OK;
181
+ }
182
+
183
+ STDMETHODIMP CDbDef::get_OpenMode( eOpenMode* Value)
184
+ {
185
+ *Value = (eOpenMode)m_dbDef->openMode();
186
+ return S_OK;
187
+ }
188
+
189
+ STDMETHODIMP CDbDef::PopBackup( short TableIndex)
190
+ {
191
+ m_dbDef->popBackup(TableIndex);
192
+ return S_OK;
193
+ }
194
+ STDMETHODIMP CDbDef::PushBackup( short TableIndex)
195
+ {
196
+ m_dbDef->pushBackup(TableIndex);
197
+ return S_OK;
198
+ }
199
+
200
+ STDMETHODIMP CDbDef::RenumberTable( short OldIndex, short NewIndex)
201
+ {
202
+ m_dbDef->renumberTable(OldIndex, NewIndex);
203
+ return S_OK;
204
+ }
205
+
206
+ STDMETHODIMP CDbDef::Reopen( eOpenMode Mode)
207
+ {
208
+ m_dbDef->reopen((char_td)Mode);
209
+ return S_OK;
210
+ }
211
+
212
+ STDMETHODIMP CDbDef::get_Version( int* Value)
213
+ {
214
+ *Value = m_dbDef->version();
215
+ return S_OK;
216
+ }
217
+
218
+ STDMETHODIMP CDbDef::put_Version( int Value)
219
+ {
220
+ m_dbDef->setVersion(Value);
221
+ return S_OK;
222
+ }
223
+
224
+ STDMETHODIMP CDbDef::get_Stat( eStatus* Value)
225
+ {
226
+ *Value = (eStatus)m_dbDef->stat();
227
+ return S_OK;
228
+ }
229
+
230
+ STDMETHODIMP CDbDef::TdapErr(OLE_HANDLE hWnd, BSTR* Value)
231
+ {
232
+ if (Value)
233
+ {
234
+ wchar_t tmp[512] = {NULL};
235
+ m_dbDef->tdapErr((HWND)hWnd, tmp);
236
+ *Value = ::SysAllocString(tmp);
237
+ }
238
+ else
239
+ m_dbDef->tdapErr((HWND)hWnd);
240
+ return S_OK;
241
+ }
242
+
@@ -0,0 +1,79 @@
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
+ #include "tdclatl_i.h"
22
+ #include <bzs/db/protocol/tdap/client/dbDef.h>
23
+
24
+
25
+ using namespace ATL;
26
+
27
+
28
+
29
+ class ATL_NO_VTABLE CDbDef : public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CDbDef, &CLSID_DbDef>,
30
+ public IDispatchImpl<IDbDef, &IID_IDbDef, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>
31
+ {
32
+
33
+
34
+ public:
35
+ CDbDef():m_dbDef(NULL) {}
36
+
37
+ bzs::db::protocol::tdap::client::dbdef* m_dbDef;
38
+
39
+ BEGIN_COM_MAP(CDbDef)
40
+ COM_INTERFACE_ENTRY(IDbDef)
41
+ COM_INTERFACE_ENTRY(IDispatch)
42
+ END_COM_MAP()
43
+
44
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
45
+
46
+ HRESULT FinalConstruct() {return S_OK;}
47
+
48
+ void FinalRelease(){}
49
+
50
+ public:
51
+
52
+ STDMETHOD(get_TableCount)(short* Value);
53
+ STDMETHOD(TableDef)(short Index, ITableDef** Value);
54
+
55
+ STDMETHOD(InsertTable)(short index, ITableDef** Param1);
56
+ STDMETHOD(DeleteField)(short TableIndex, short FieldIndex);
57
+ STDMETHOD(DeleteKey)(short TableIndex, short KeyIndex);
58
+ STDMETHOD(InsertField)(short TableIndex, short InsertIndex, IFieldDef** Param3);
59
+
60
+ STDMETHOD(InsertKey)(short TableIndex, short InsertIndex, IKeyDef** Param3);
61
+ STDMETHOD(UpDateTableDef)(short TableIndex);
62
+ STDMETHOD(CompAsBackup)(short TableIndex, VARIANT_BOOL* Value);
63
+ STDMETHOD(DeleteTable)(short TableIndex);
64
+ STDMETHOD(TableNumByName)(BSTR Name, short* Value);
65
+ STDMETHOD(FieldNumByName)( short TableIndex, BSTR Name, short* Value);
66
+ STDMETHOD(FieldValidLength)( eFieldQuery Query, short FieldType, unsigned int* Value);
67
+ STDMETHOD(FindKeynumByFieldNum)( short TableIndex, short Index, unsigned short* Value);
68
+ STDMETHOD(GetRecordLen)( short TableIndex, unsigned short* Value);
69
+ STDMETHOD(get_OpenMode)( eOpenMode* Value);
70
+ STDMETHOD(PopBackup)( short TableIndex);
71
+ STDMETHOD(PushBackup)( short TableIndex);
72
+ STDMETHOD(RenumberTable)( short OldIndex, short NewIndex);
73
+ STDMETHOD(Reopen)( eOpenMode Mode);
74
+ STDMETHOD(get_Version)( int* Value);
75
+ STDMETHOD(put_Version)( int Value);
76
+ STDMETHOD(get_Stat)( eStatus* Value);
77
+ STDMETHOD(TdapErr)(OLE_HANDLE hWnd, BSTR* Value);
78
+
79
+ };
@@ -0,0 +1,92 @@
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 "Field.h"
21
+
22
+ STDMETHODIMP CField::get_Text(BSTR* Value)
23
+ {
24
+
25
+ *Value = ::SysAllocString(m_tb->getFVstr(m_index));
26
+ return S_OK;
27
+ }
28
+
29
+ STDMETHODIMP CField::get_Vlng(int* Value)
30
+ {
31
+ *Value = m_tb->getFVint(m_index);
32
+ return S_OK;
33
+ }
34
+
35
+ STDMETHODIMP CField::put_Text(BSTR Value)
36
+ {
37
+ m_tb->setFVW(m_index, Value);
38
+ ::SysFreeString(Value);
39
+
40
+ return S_OK;
41
+ }
42
+
43
+ STDMETHODIMP CField::put_Vlng(int Value)
44
+ {
45
+ m_tb->setFV(m_index, Value);
46
+ return S_OK;
47
+ }
48
+
49
+ STDMETHODIMP CField::get_V64(__int64* Value)
50
+ {
51
+ *Value = m_tb->getFV64(m_index);
52
+ return S_OK;
53
+ }
54
+
55
+ STDMETHODIMP CField::put_V64(__int64 Value)
56
+ {
57
+ m_tb->setFV(m_index, Value);
58
+ return S_OK;
59
+ }
60
+
61
+ STDMETHODIMP CField::get_Vbin(BSTR* Value)
62
+ {
63
+ uint_td size;
64
+ void* p = m_tb->getFVbin(m_index, size);
65
+
66
+ *Value = ::SysAllocStringByteLen((char*)p, size);
67
+
68
+ return S_OK;
69
+ }
70
+
71
+ STDMETHODIMP CField::get_Vdbl(double* Value)
72
+ {
73
+ *Value = m_tb->getFVdbl(m_index);
74
+ return S_OK;
75
+ }
76
+
77
+ STDMETHODIMP CField::put_Vbin(BSTR Value)
78
+ {
79
+
80
+ int len = ::SysStringByteLen(Value);
81
+ if (len > m_tb->tableDef()->fieldDefs[m_index].len)
82
+ len = m_tb->tableDef()->fieldDefs[m_index].len;
83
+ m_tb->setFV(m_index, Value, len);
84
+
85
+ return S_OK;
86
+ }
87
+
88
+ STDMETHODIMP CField::put_Vdbl(double Value)
89
+ {
90
+ m_tb->setFV(m_index, Value);
91
+ return S_OK;
92
+ }
@@ -0,0 +1,59 @@
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/client/table.h>
24
+
25
+ using namespace ATL;
26
+
27
+ class ATL_NO_VTABLE CField : public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CField, &CLSID_Field>,
28
+ public IDispatchImpl<IField, &IID_IField, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>
29
+ {
30
+ public:
31
+ CField():m_tb(NULL) {}
32
+ bzs::db::protocol::tdap::client::table* m_tb;
33
+ short m_index;
34
+
35
+ BEGIN_COM_MAP(CField)
36
+ COM_INTERFACE_ENTRY(IField)
37
+ COM_INTERFACE_ENTRY(IDispatch)
38
+ END_COM_MAP()
39
+
40
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
41
+
42
+ HRESULT FinalConstruct() {return S_OK;}
43
+
44
+ void FinalRelease() {}
45
+
46
+ public:
47
+
48
+ STDMETHOD(get_Text)(BSTR* Value);
49
+ STDMETHOD(get_Vlng)(int* Value);
50
+ STDMETHOD(put_Text)(BSTR Value);
51
+ STDMETHOD(put_Vlng)(int Value);
52
+ STDMETHOD(get_V64)(__int64* Value);
53
+ STDMETHOD(put_V64)(__int64 Value);
54
+ STDMETHOD(get_Vbin)(BSTR* Value);
55
+ STDMETHOD(get_Vdbl)(double* Value);
56
+ STDMETHOD(put_Vbin)(BSTR Value);
57
+ STDMETHOD(put_Vdbl)(double Value);
58
+
59
+ };
@@ -0,0 +1,238 @@
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 "FieldDef.h"
21
+ #include "Flags.h"
22
+
23
+ STDMETHODIMP CFieldDef::get_Name(BSTR* Value)
24
+ {
25
+ CComBSTR ret;
26
+ ret = fielddef()->name();
27
+ *Value = ret.Copy();
28
+ return S_OK;
29
+ }
30
+
31
+ STDMETHODIMP CFieldDef::put_Name(BSTR Value)
32
+ {
33
+ fielddef()->setName(Value);
34
+ return S_OK;
35
+ }
36
+
37
+ STDMETHODIMP CFieldDef::get_Type(eFieldType* Value)
38
+ {
39
+ *Value = (eFieldType)fielddef()->type;
40
+ return S_OK;
41
+ }
42
+
43
+ STDMETHODIMP CFieldDef::put_Type(eFieldType Value)
44
+ {
45
+ fielddef()->type = (uchar_td)Value;
46
+ return S_OK;
47
+ }
48
+
49
+ STDMETHODIMP CFieldDef::get_Len(short* Value)
50
+ {
51
+ *Value = fielddef()->len;
52
+ return S_OK;
53
+ }
54
+
55
+ STDMETHODIMP CFieldDef::put_Len(short Value)
56
+ {
57
+ fielddef()->len = Value;
58
+ return S_OK;
59
+ }
60
+
61
+ STDMETHODIMP CFieldDef::get_Decimals(unsigned char* Value)
62
+ {
63
+ *Value = fielddef()->decimals;
64
+ return S_OK;
65
+ }
66
+
67
+ STDMETHODIMP CFieldDef::put_Decimals(unsigned char Value)
68
+ {
69
+ fielddef()->decimals = Value;
70
+ return S_OK;
71
+ }
72
+
73
+ STDMETHODIMP CFieldDef::get_Max(double* Value)
74
+ {
75
+ *Value = fielddef()->max;
76
+ return S_OK;
77
+ }
78
+
79
+ STDMETHODIMP CFieldDef::put_Max(double Value)
80
+ {
81
+ fielddef()->max = Value;
82
+ return S_OK;
83
+ }
84
+
85
+ STDMETHODIMP CFieldDef::get_Min(double* Value)
86
+ {
87
+ *Value = fielddef()->min;
88
+ return S_OK;
89
+ }
90
+
91
+ STDMETHODIMP CFieldDef::put_Min(double Value)
92
+ {
93
+ fielddef()->min = Value;
94
+ return S_OK;
95
+ }
96
+
97
+ STDMETHODIMP CFieldDef::get_DefValue(double* Value)
98
+ {
99
+ *Value = fielddef()->defValue;
100
+ return S_OK;
101
+ }
102
+
103
+ STDMETHODIMP CFieldDef::put_DefValue(double Value)
104
+ {
105
+ fielddef()->defValue = Value;
106
+ return S_OK;
107
+ }
108
+
109
+ STDMETHODIMP CFieldDef::get_LookTable(unsigned char* Value)
110
+ {
111
+ *Value = fielddef()->lookTable;
112
+ return S_OK;
113
+ }
114
+
115
+ STDMETHODIMP CFieldDef::put_LookTable(unsigned char Value)
116
+ {
117
+ fielddef()->lookTable = Value;
118
+ return S_OK;
119
+ }
120
+
121
+ STDMETHODIMP CFieldDef::get_LookField(unsigned char* Value)
122
+ {
123
+ *Value = fielddef()->lookField;
124
+ return S_OK;
125
+ }
126
+
127
+ STDMETHODIMP CFieldDef::put_LookField(unsigned char Value)
128
+ {
129
+ fielddef()->lookField = Value;
130
+ return S_OK;
131
+ }
132
+
133
+ STDMETHODIMP CFieldDef::get_LookViewField(short Index, unsigned char* Value)
134
+ {
135
+ *Value = fielddef()->lookFields[Index];
136
+ return S_OK;
137
+ }
138
+
139
+ STDMETHODIMP CFieldDef::put_LookViewField(short Index, unsigned char Value)
140
+ {
141
+ fielddef()->lookFields[Index] = Value;
142
+ return S_OK;
143
+ }
144
+
145
+ STDMETHODIMP CFieldDef::get_EnableFlags(IFlags** Value)
146
+ {
147
+ CComObject<CFlags> *piObj;
148
+ CComObject<CFlags>::CreateInstance(&piObj);
149
+ if (piObj)
150
+ {
151
+ piObj->m_flags = fielddef()->enableFlags;
152
+ IFlags* fl;
153
+ piObj->QueryInterface(IID_IFlags, (void**)&fl);
154
+ _ASSERTE(fl);
155
+ *Value = piObj;
156
+ }else
157
+ *Value = 0;
158
+ return S_OK;
159
+ }
160
+
161
+ STDMETHODIMP CFieldDef::put_EnableFlags(IFlags* Value)
162
+ {
163
+ Value->All(&fielddef()->enableFlags.all);
164
+ return S_OK;
165
+ }
166
+
167
+ STDMETHODIMP CFieldDef::get_Keylen(unsigned short* Value)
168
+ {
169
+ *Value = fielddef()->keylen;
170
+ return S_OK;
171
+ }
172
+
173
+ STDMETHODIMP CFieldDef::put_Keylen(unsigned short Value)
174
+ {
175
+ fielddef()->keylen = Value;
176
+ return S_OK;
177
+ }
178
+
179
+ STDMETHODIMP CFieldDef::get_NullValue(unsigned short* Value)
180
+ {
181
+ *Value = fielddef()->nullValue;
182
+ return S_OK;
183
+ }
184
+
185
+ STDMETHODIMP CFieldDef::put_NullValue(unsigned short Value)
186
+ {
187
+ fielddef()->nullValue = (uchar_td)Value;
188
+ return S_OK;
189
+ }
190
+
191
+ STDMETHODIMP CFieldDef::get_Align(unsigned int* Value)
192
+ {
193
+ *Value = fielddef()->align();
194
+ return S_OK;
195
+ }
196
+
197
+ STDMETHODIMP CFieldDef::get_TypeName( BSTR* Value)
198
+ {
199
+ *Value = ::SysAllocString(fielddef()->typeName());
200
+ return S_OK;
201
+ }
202
+
203
+ STDMETHODIMP CFieldDef::get_IsStringType( VARIANT_BOOL* Value)
204
+ {
205
+ *Value = fielddef()->isStringType();
206
+ return S_OK;
207
+ }
208
+
209
+ STDMETHODIMP CFieldDef::get_CharsetIndex(eCharset* Value)
210
+ {
211
+ *Value = (eCharset)fielddef()->charsetIndex();
212
+ return S_OK;
213
+ }
214
+
215
+ STDMETHODIMP CFieldDef::put_CharsetIndex(eCharset Value)
216
+ {
217
+ fielddef()->setCharsetIndex((unsigned char)Value);
218
+ return S_OK;
219
+ }
220
+
221
+ STDMETHODIMP CFieldDef::get_CodePage(unsigned int* Value)
222
+ {
223
+ *Value = fielddef()->codePage();
224
+ return S_OK;
225
+ }
226
+
227
+ STDMETHODIMP CFieldDef::get_CharNum(unsigned int* Value)
228
+ {
229
+ *Value = fielddef()->charNum();
230
+ return S_OK;
231
+ }
232
+
233
+ STDMETHODIMP CFieldDef::SetLenByCharnum(unsigned short Value)
234
+ {
235
+ fielddef()->setLenByCharnum(Value);
236
+ return S_OK;
237
+ }
238
+