transactd 1.2.0 → 2.0.0

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 (306) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA +46 -67
  3. data/BUILD_WIN-JA +106 -63
  4. data/CMakeLists.txt +40 -15
  5. data/README +219 -75
  6. data/README-JA +207 -76
  7. data/README_ORMSRCGEN +118 -0
  8. data/README_ORMSRCGEN-JA +115 -0
  9. data/bin/common/tdclc_32_2_0.dll +0 -0
  10. data/bin/common/tdclc_64_2_0.dll +0 -0
  11. data/build/common/check_for_link_iconv.cmake +18 -14
  12. data/build/common/create_symlink.cmake.in +25 -0
  13. data/build/common/get_boost_libs.cmake +23 -23
  14. data/build/common/options.cmake +0 -66
  15. data/build/common/smart_install.cmake +3 -3
  16. data/build/common/transactd.rc.in +15 -5
  17. data/build/common/transactd_cl_common.cmake +37 -18
  18. data/build/common/transactd_cl_output.cmake +55 -13
  19. data/build/common/transactd_common.cmake +108 -31
  20. data/build/swig/php/generate.cmake.in +15 -17
  21. data/build/swig/php/generate.cmd.in +15 -9
  22. data/build/swig/php/php.swg +124 -82
  23. data/build/swig/php/transactd.no_yield.php +4494 -0
  24. data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
  25. data/build/swig/php/transactd.no_yield.php.patch +685 -0
  26. data/build/swig/php/transactd.yield.php +4461 -0
  27. data/build/swig/php/transactd.yield.php.git.patch +652 -0
  28. data/build/swig/php/transactd.yield.php.patch +652 -0
  29. data/build/swig/referencecounter.h +79 -0
  30. data/build/swig/ruby/ruby.swg +226 -76
  31. data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
  32. data/build/swig/ruby/without_gvl.swg +87 -0
  33. data/build/swig/tdcl.i +659 -170
  34. data/build/swig/validatablepointer.h +91 -0
  35. data/build/tdclc/CMakeLists.txt +49 -34
  36. data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
  37. data/build/tdclc/tdclc.rc +0 -0
  38. data/build/tdclcpp/CMakeLists.txt +84 -20
  39. data/build/tdclcpp/tdclcpp.rc +0 -0
  40. data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
  41. data/build/tdclrb/CMakeLists.txt +84 -66
  42. data/build/tdclrb/bldgem/extconf.rb +28 -3
  43. data/build/tdclrb/gem/helper.rb +11 -1
  44. data/build/tdclrb/gem_output.cmake +20 -16
  45. data/index_ja.html +15 -0
  46. data/source/bzs/db/IBlobBuffer.h +15 -17
  47. data/source/bzs/db/blobBuffer.h +186 -140
  48. data/source/bzs/db/blobStructs.h +37 -37
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
  50. data/source/bzs/db/engine/mysql/bookmark.h +150 -147
  51. data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
  52. data/source/bzs/db/engine/mysql/database.h +608 -370
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
  54. data/source/bzs/db/engine/mysql/dbManager.h +115 -104
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
  56. data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
  63. data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
  64. data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
  68. data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
  69. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
  70. data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
  71. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
  72. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
  73. data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
  74. data/source/bzs/db/protocol/tdap/client/client.h +361 -320
  75. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
  76. data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
  77. data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
  78. data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
  79. data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
  80. data/source/bzs/db/protocol/tdap/client/database.h +141 -118
  81. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
  82. data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
  83. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
  84. data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
  85. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
  86. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
  87. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
  88. data/source/bzs/db/protocol/tdap/client/export.h +35 -0
  89. data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
  90. data/source/bzs/db/protocol/tdap/client/field.h +393 -0
  91. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
  92. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
  93. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
  94. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
  95. data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
  96. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
  97. data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
  98. data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
  99. data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
  100. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
  101. data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
  102. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
  103. data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
  104. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
  105. data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
  106. data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
  107. data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
  108. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
  109. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
  110. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
  111. data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
  112. data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
  113. data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
  114. data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
  115. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
  116. data/source/bzs/db/protocol/tdap/client/request.h +227 -170
  117. data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
  118. data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
  119. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
  120. data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
  121. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
  122. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
  123. data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
  124. data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
  125. data/source/bzs/db/protocol/tdap/client/table.h +413 -87
  126. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
  127. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
  128. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
  129. data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
  130. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
  131. data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
  132. data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
  133. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
  134. data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
  135. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
  136. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
  137. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
  138. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
  139. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
  140. data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
  141. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
  142. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
  143. data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
  144. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
  145. data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
  146. data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
  147. data/source/bzs/db/transactd/appBuilderImple.h +21 -20
  148. data/source/bzs/db/transactd/appModule.cpp +350 -98
  149. data/source/bzs/db/transactd/appModule.h +31 -37
  150. data/source/bzs/db/transactd/connManager.cpp +138 -135
  151. data/source/bzs/db/transactd/connManager.h +28 -21
  152. data/source/bzs/db/transactd/connectionRecord.h +39 -39
  153. data/source/bzs/db/transactd/transactd.cpp +217 -203
  154. data/source/bzs/env/boost_bcb_link.h +131 -0
  155. data/source/bzs/env/compiler.h +136 -79
  156. data/source/bzs/env/crosscompile.cpp +57 -57
  157. data/source/bzs/env/crosscompile.h +130 -115
  158. data/source/bzs/env/fileopen.h +7 -8
  159. data/source/bzs/env/mbcswchrLinux.cpp +4 -9
  160. data/source/bzs/env/mbcswchrLinux.h +37 -34
  161. data/source/bzs/env/tcharMinGW.h +59 -0
  162. data/source/bzs/env/tstring.h +90 -95
  163. data/source/bzs/example/changeSchema.cpp +22 -23
  164. data/source/bzs/example/changeSchema_c.cpp +22 -24
  165. data/source/bzs/example/connection_pool_c.cpp +49 -104
  166. data/source/bzs/example/createDatabase.cpp +40 -47
  167. data/source/bzs/example/createDatabase_c.cpp +38 -43
  168. data/source/bzs/example/deleteRecords.cpp +10 -15
  169. data/source/bzs/example/deleteRecords_c.cpp +10 -14
  170. data/source/bzs/example/dropDatabase.cpp +3 -9
  171. data/source/bzs/example/dropDatabase_c.cpp +5 -6
  172. data/source/bzs/example/insertRecords.cpp +37 -29
  173. data/source/bzs/example/insertRecords_c.cpp +19 -25
  174. data/source/bzs/example/ormap_c.cpp +621 -0
  175. data/source/bzs/example/queryData.cpp +371 -0
  176. data/source/bzs/example/queryData.h +16 -0
  177. data/source/bzs/example/query_c.cpp +109 -0
  178. data/source/bzs/example/readRecords.cpp +27 -27
  179. data/source/bzs/example/readRecords_c.cpp +25 -23
  180. data/source/bzs/example/updateRecords.cpp +16 -21
  181. data/source/bzs/example/updateRecords_c.cpp +8 -12
  182. data/source/bzs/example/update_with_transaction.cpp +21 -24
  183. data/source/bzs/example/update_with_transaction_c.cpp +12 -15
  184. data/source/bzs/example/useORMRecord.cpp +177 -0
  185. data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
  186. data/source/bzs/netsvc/client/tcpClient.h +541 -489
  187. data/source/bzs/netsvc/server/IAppModule.h +119 -32
  188. data/source/bzs/netsvc/server/iserver.h +21 -23
  189. data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
  190. data/source/bzs/netsvc/server/serverCpt.h +41 -43
  191. data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
  192. data/source/bzs/netsvc/server/serverPipe.h +44 -45
  193. data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
  194. data/source/bzs/netsvc/server/serverTpool.h +38 -43
  195. data/source/bzs/rtl/benchmark.cpp +91 -31
  196. data/source/bzs/rtl/benchmark.h +76 -22
  197. data/source/bzs/rtl/datetime.cpp +231 -233
  198. data/source/bzs/rtl/datetime.h +16 -16
  199. data/source/bzs/rtl/debuglog.cpp +48 -51
  200. data/source/bzs/rtl/debuglog.h +55 -44
  201. data/source/bzs/rtl/exception.h +55 -48
  202. data/source/bzs/rtl/stl_uty.cpp +27 -28
  203. data/source/bzs/rtl/stl_uty.h +28 -29
  204. data/source/bzs/rtl/stringBuffers.cpp +8 -6
  205. data/source/bzs/rtl/stringBuffers.h +16 -9
  206. data/source/bzs/rtl/strtrim.cpp +90 -91
  207. data/source/bzs/rtl/strtrim.h +14 -16
  208. data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
  209. data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
  210. data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
  211. data/source/bzs/test/tdclphp/bench.php +357 -0
  212. data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
  213. data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
  214. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
  215. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
  216. data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
  217. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
  218. data/source/bzs/test/tdclrb/prepare.rb +15 -12
  219. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
  220. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
  221. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
  222. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
  223. data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
  224. data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
  225. data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
  226. data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
  227. data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
  228. data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
  229. data/source/bzs/test/transactdBench/workerBase.h +88 -0
  230. data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
  231. data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
  232. data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
  233. data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
  234. data/source/global/ormsrcgen/confParam.h +80 -0
  235. data/source/global/ormsrcgen/fieldName.cpp +77 -0
  236. data/source/global/ormsrcgen/fieldName.h +43 -0
  237. data/source/global/ormsrcgen/main.cpp +196 -0
  238. data/source/global/ormsrcgen/srcgen.cpp +763 -0
  239. data/source/global/ormsrcgen/srcgen.h +72 -0
  240. data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
  241. data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
  242. data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
  243. data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
  244. data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
  245. data/source/global/ormsrcgen/template/template.cnf +38 -0
  246. data/source/global/querystmts/querystmts.cpp +237 -0
  247. data/source/global/tdclatl/ConnectParams.cpp +77 -0
  248. data/source/global/tdclatl/ConnectParams.h +70 -0
  249. data/source/global/tdclatl/Database.cpp +132 -128
  250. data/source/global/tdclatl/Database.h +60 -49
  251. data/source/global/tdclatl/DbDef.cpp +68 -64
  252. data/source/global/tdclatl/DbDef.h +36 -36
  253. data/source/global/tdclatl/Field.cpp +12 -17
  254. data/source/global/tdclatl/Field.h +15 -12
  255. data/source/global/tdclatl/FieldDef.cpp +75 -36
  256. data/source/global/tdclatl/FieldDef.h +38 -19
  257. data/source/global/tdclatl/FieldDefs.cpp +74 -0
  258. data/source/global/tdclatl/FieldDefs.h +56 -0
  259. data/source/global/tdclatl/FieldNames.cpp +99 -0
  260. data/source/global/tdclatl/FieldNames.h +66 -0
  261. data/source/global/tdclatl/Flags.cpp +75 -37
  262. data/source/global/tdclatl/Flags.h +13 -12
  263. data/source/global/tdclatl/GroupQuery.cpp +119 -0
  264. data/source/global/tdclatl/GroupQuery.h +65 -0
  265. data/source/global/tdclatl/KeyDef.cpp +15 -14
  266. data/source/global/tdclatl/KeyDef.h +20 -17
  267. data/source/global/tdclatl/KeySegment.cpp +13 -12
  268. data/source/global/tdclatl/PooledDbManager.cpp +223 -0
  269. data/source/global/tdclatl/PooledDbManager.h +76 -0
  270. data/source/global/tdclatl/QueryBase.cpp +206 -127
  271. data/source/global/tdclatl/QueryBase.h +55 -59
  272. data/source/global/tdclatl/Record.cpp +214 -0
  273. data/source/global/tdclatl/Record.h +96 -0
  274. data/source/global/tdclatl/Recordset.cpp +278 -0
  275. data/source/global/tdclatl/Recordset.h +83 -0
  276. data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
  277. data/source/global/tdclatl/RecordsetQuery.h +126 -0
  278. data/source/global/tdclatl/Table.cpp +57 -60
  279. data/source/global/tdclatl/Table.h +32 -29
  280. data/source/global/tdclatl/TableDef.cpp +63 -62
  281. data/source/global/tdclatl/TableDef.h +20 -22
  282. data/source/global/tdclatl/TdVersion.cpp +3 -3
  283. data/source/global/tdclatl/TdVersion.h +15 -11
  284. data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
  285. data/source/global/tdclatl/activeTable.cpp +355 -0
  286. data/source/global/tdclatl/activeTable.h +79 -0
  287. data/source/global/tdclatl/dllmain.cpp +4 -3
  288. data/source/global/tdclatl/dllmain.h +7 -6
  289. data/source/global/tdclatl/keySegment.h +22 -18
  290. data/source/global/tdclatl/resource.h +0 -0
  291. data/source/global/tdclatl/stdafx.h +6 -4
  292. data/source/global/tdclatl/targetver.h +0 -1
  293. data/source/global/tdclatl/tdclatl.cpp +10 -5
  294. data/source/global/tdclatl/tdclatl.idl +530 -14
  295. data/source/linux/charsetConvert.h +78 -79
  296. data/source/linux/linuxTypes.h +9 -12
  297. data/source/linux/tchar.h +168 -166
  298. data/transactd.gemspec +24 -16
  299. metadata +98 -12
  300. data/bin/common/tdclc_32_1_2.dll +0 -0
  301. data/bin/common/tdclc_64_1_2.dll +0 -0
  302. data/build/tdclc/tdclc_32.cbproj +0 -173
  303. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
  304. data/build/tdclrb/GEM_VERSION +0 -3
  305. data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
  306. data/source/bzs/example/useORM.cpp +0 -585
@@ -0,0 +1,295 @@
1
+ #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_SERIALIZEER_H
2
+ #define BZS_DB_PROTOCOL_TDAP_CLIENT_SERIALIZEER_H
3
+ /*=================================================================
4
+ Copyright (C) 2014 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ =================================================================*/
21
+ #include <bzs/db/protocol/tdap/client/activeTable.h>
22
+ #include <sstream>
23
+
24
+ #ifdef LIB_TDCLSTMT
25
+ #define DLLLIBSTMT AGRPACK
26
+ #else
27
+ #ifdef BCB_32
28
+ #define DLLLIBSTMT AGRPACK
29
+ #else
30
+ #define DLLLIBSTMT // PACKAGE_IMPORT
31
+ #endif
32
+ #endif // LIB_TDCLSTMT
33
+
34
+ #if (defined(TRDCL_AUTOLINK) && !defined(LIB_TDCLSTMT))
35
+ #include "trdclcppautolink.h"
36
+ #define TD_STMT_LIB_NAME \
37
+ LIB_PREFIX "tdclstmt" CPP_INTERFACE_VERSTR SHARED_LIB_EXTENTION
38
+ #pragma comment(lib, TD_STMT_LIB_NAME)
39
+ #endif // TRDCL_AUTOLINK
40
+
41
+ namespace bzs
42
+ {
43
+ namespace db
44
+ {
45
+ namespace protocol
46
+ {
47
+ namespace tdap
48
+ {
49
+ namespace client
50
+ {
51
+ /** @cond INTERNAL */
52
+ #define ID_READ_STMT 0
53
+ #define ID_READHASMANY_STMT 1
54
+ #define ID_GROUPBY_STMT 2
55
+ #define ID_ORDERBY_STMT 3
56
+ #define ID_REVORDER_STMT 4
57
+ #define ID_MATCHBY_STMT 5
58
+ #define ID_MAX_STMT 6
59
+
60
+ class DLLLIBSTMT executable
61
+ {
62
+ friend struct queryStatementsImple;
63
+
64
+ public:
65
+ virtual ~executable(){};
66
+ virtual void execute(recordset& rs) = 0;
67
+ void release();
68
+ virtual const int typeID() const = 0;
69
+ };
70
+
71
+ class DLLLIBSTMT groupByStatement : public fieldNames, public executable
72
+ {
73
+ struct queryStatementsImple* m_parent;
74
+ friend class queryStatements;
75
+ friend struct queryStatementsImple;
76
+ std::vector<groupFuncBase*>* m_statements;
77
+
78
+ template <class Archive>
79
+ friend void serialize(Archive& ar, groupByStatement& q,
80
+ const unsigned int version);
81
+ groupByStatement(const groupByStatement& r); // no implements
82
+ groupByStatement& operator=(const groupByStatement& r); // no implements
83
+
84
+ public:
85
+ enum eFunc
86
+ {
87
+ fsum,
88
+ fcount,
89
+ favg,
90
+ fmin,
91
+ fmax
92
+ };
93
+ groupByStatement();
94
+ ~groupByStatement();
95
+
96
+ groupFuncBase& addFunction(eFunc v, const fieldNames& targetNames,
97
+ const _TCHAR* resultName = NULL);
98
+ groupFuncBase& function(int index);
99
+ groupByStatement& reset();
100
+ int size() const;
101
+ void execute(recordset& rs);
102
+ const int typeID() const { return ID_GROUPBY_STMT; };
103
+ static groupByStatement* create();
104
+ };
105
+
106
+ #define MAX_FUNCTION_SIZE (int) groupByStatement::fmax + 1
107
+
108
+ class DLLLIBSTMT matchByStatement : public recordsetQuery, public executable
109
+ {
110
+ struct queryStatementsImple* m_parent;
111
+ friend class queryStatements;
112
+ friend struct queryStatementsImple;
113
+
114
+ public:
115
+ void execute(recordset& rs);
116
+ static matchByStatement* create();
117
+ const int typeID() const { return ID_MATCHBY_STMT; };
118
+ };
119
+
120
+ class DLLLIBSTMT orderByStatement : public executable
121
+ {
122
+ sortFields* m_sortFields;
123
+ template <class Archive>
124
+ friend void serialize(Archive& ar, orderByStatement& q,
125
+ const unsigned int version);
126
+ orderByStatement(const orderByStatement& r); // no implements
127
+ orderByStatement& operator=(const orderByStatement& r); // no implements
128
+ public:
129
+ ~orderByStatement();
130
+ orderByStatement();
131
+ void execute(recordset& rs);
132
+ void add(const _TCHAR* name, bool asc = true);
133
+ orderByStatement& reset();
134
+ int size() const;
135
+ const sortField& get(int index) const;
136
+ const int typeID() const { return ID_ORDERBY_STMT; };
137
+ static orderByStatement* create();
138
+ };
139
+
140
+ class DLLLIBSTMT reverseOrderStatement : public executable
141
+ {
142
+ //~reverseOrderStatement(){};
143
+ // reverseOrderStatement():executable(){};
144
+
145
+ public:
146
+ void execute(recordset& rs);
147
+ const int typeID() const { return ID_REVORDER_STMT; };
148
+ static reverseOrderStatement* create();
149
+ };
150
+
151
+ class DLLLIBSTMT readStatement : public fieldNames,
152
+ public query,
153
+ public executable
154
+ {
155
+ friend struct queryStatementsImple;
156
+ friend class queryStatements;
157
+
158
+ struct queryStatementImple* m_impl;
159
+ queryStatementImple* internalPtr() const;
160
+ template <class Archive>
161
+ friend void serialize(Archive& ar, readStatement& q,
162
+ const unsigned int version);
163
+ readStatement(const readStatement& r); // no implements
164
+ readStatement& operator=(const readStatement& r); // no implements
165
+ public:
166
+ ~readStatement();
167
+ readStatement();
168
+
169
+ enum eReadType
170
+ {
171
+ opRead,
172
+ opJoin,
173
+ opOuterJoin
174
+ };
175
+ int getIndex() const;
176
+ readStatement& index(int v);
177
+ int getOption() const;
178
+ readStatement& option(int v);
179
+ const _TCHAR* getDatabaseUri() const;
180
+ readStatement& databaseUri(const _TCHAR* v);
181
+ const _TCHAR* getTableName() const;
182
+ readStatement& tableName(const _TCHAR* v);
183
+ eReadType getReadType() const;
184
+ readStatement& readType(eReadType v);
185
+ readStatement& alias(const _TCHAR* src, const _TCHAR* dst);
186
+ readStatement& reset();
187
+ int aliasCount() const;
188
+ const _TCHAR* getAliasFirst(int index) const;
189
+ const _TCHAR* getAliasSecond(int index) const;
190
+
191
+ void execute(recordset& rs);
192
+ const int typeID() const { return ID_READ_STMT; };
193
+ static readStatement* create();
194
+ };
195
+
196
+ typedef std::vector<boost::shared_ptr<recordset> > recordsets;
197
+
198
+ class DLLLIBSTMT readHasMany : public readStatement
199
+ {
200
+ struct readHasManyImple* m_readHasManyImpl;
201
+ readHasManyImple* internalPtr() const;
202
+ template <class Archive>
203
+ friend void serialize(Archive& ar, readHasMany& q,
204
+ const unsigned int version);
205
+ readHasMany(const readHasMany& r); // no implements
206
+ readHasMany& operator=(const readHasMany& r); // no implements
207
+ public:
208
+ ~readHasMany();
209
+ readHasMany();
210
+ client::recordsets& recordsets();
211
+ void addkeyValueColumn(const _TCHAR* name);
212
+ const _TCHAR* getkeyValueColumn(int index) const;
213
+ int keyValueColumns() const;
214
+ readHasMany& reset();
215
+ void execute(recordset& rs);
216
+ const int typeID() const { return ID_READHASMANY_STMT; };
217
+ static readHasMany* create();
218
+ };
219
+
220
+ class executeListner
221
+ {
222
+ public:
223
+ virtual void onExecuted(const executable* e, const recordset& rs) = 0;
224
+ };
225
+
226
+ class DLLLIBSTMT queryStatements
227
+ {
228
+ struct queryStatementsImple* m_impl;
229
+ queryStatementsImple* internalPtr() const;
230
+ template <class Archive>
231
+ friend void serialize(Archive& ar, queryStatements& q,
232
+ const unsigned int version);
233
+ queryStatements(const queryStatements& r); // no implements
234
+ queryStatements& operator=(const queryStatements& r); // no implements
235
+ void* getPtr(const executable* e) const;
236
+
237
+ public:
238
+ queryStatements(idatabaseManager& dbm);
239
+ queryStatements(database* db);
240
+ ~queryStatements();
241
+ int getId() const;
242
+ queryStatements& id(int v);
243
+ const _TCHAR* getTitle() const;
244
+ queryStatements& title(const _TCHAR* v);
245
+ const _TCHAR* getDescription() const;
246
+ queryStatements& description(const _TCHAR* v);
247
+ executable* get(int index);
248
+ void pop_back();
249
+
250
+ readStatement* addRead(readStatement::eReadType type);
251
+ readHasMany* addHasManyRead();
252
+ groupByStatement* addGroupBy();
253
+ orderByStatement* addOrderBy();
254
+ matchByStatement* addMatchBy();
255
+ reverseOrderStatement* addReverseOrder();
256
+ int statementType(int index);
257
+
258
+ readStatement* getReadStatement(executable* e);
259
+ readHasMany* getReadHasMany(executable* e);
260
+ groupByStatement* getGroupByStatement(executable* e);
261
+ orderByStatement* getOrderByStatement(executable* e);
262
+ matchByStatement* getMatchByStatement(executable* e);
263
+ reverseOrderStatement* getReverseOrderStatement(executable* e);
264
+
265
+ const readStatement* getReadStatement(const executable* e) const;
266
+ const readHasMany* getReadHasMany(const executable* e) const;
267
+ const groupByStatement* getGroupByStatement(const executable* e) const;
268
+ const orderByStatement* getOrderByStatement(const executable* e) const;
269
+ const matchByStatement* getMatchByStatement(const executable* e) const;
270
+ const reverseOrderStatement*
271
+ getReverseOrderStatement(const executable* e) const;
272
+
273
+ void clear();
274
+ int size() const;
275
+ void save(const _TCHAR* filename);
276
+ void load(const _TCHAR* filename);
277
+ void save(std::stringstream& sf);
278
+ void load(std::stringstream& sf);
279
+ void execute(recordset& rs, const std::vector<std::_tstring>* values = NULL,
280
+ executeListner* listner = NULL);
281
+ static queryStatements* create(idatabaseManager& dbm);
282
+ static queryStatements* create(database* db);
283
+
284
+ void release();
285
+ };
286
+
287
+ /** @endcond */
288
+
289
+ } // namespace client
290
+ } // namespace tdap
291
+ } // namespace protocol
292
+ } // namespace db
293
+ } // namespace bzs
294
+
295
+ #endif // BZS_DB_PROTOCOL_TDAP_CLIENT_SERIALIZEER_H
@@ -21,7 +21,6 @@
21
21
 
22
22
  #pragma package(smart_init)
23
23
 
24
-
25
24
  namespace bzs
26
25
  {
27
26
  namespace db
@@ -33,26 +32,24 @@ namespace tdap
33
32
  namespace client
34
33
  {
35
34
 
36
-
37
- static nsdatabase* g_engins[MAX_BTRENGIN]={0};
35
+ static nsdatabase* g_engins[MAX_BTRENGIN] = { 0 };
38
36
 
39
37
  nsdatabase** enginsInternal()
40
38
  {
41
- return g_engins;
39
+ return g_engins;
42
40
  }
43
41
 
44
42
  #ifdef ARBTREGN_SHARED_DLL
45
43
  nsdatabase** enginsShared()
46
44
  {
47
- return g_engins;
45
+ return g_engins;
48
46
  }
49
47
  #endif
50
48
 
51
- EnginsFunc engins=enginsInternal;
52
-
49
+ EnginsFunc engins = enginsInternal;
53
50
 
54
- }//namespace client
55
- }//namespace tdap
56
- }//namespace protocol
57
- }//namespace db
58
- }//namespace bzs
51
+ } // namespace client
52
+ } // namespace tdap
53
+ } // namespace protocol
54
+ } // namespace db
55
+ } // namespace bzs
@@ -31,26 +31,28 @@ namespace tdap
31
31
  namespace client
32
32
  {
33
33
 
34
-
35
- #define MAX_BTRENGIN 50
34
+ #define MAX_BTRENGIN 2000
36
35
 
37
36
  class nsdatabase;
38
37
  typedef nsdatabase** (*EnginsFunc)();
39
38
 
40
- #ifdef ARBTREGN_PKG
41
- PACKAGE void registEnginsPtr(EnginsFunc func);//If use shared dll then you need Call this function. Implemant at trdclengne
39
+ #ifdef LIB_TDCLCPP
40
+ PACKAGE void registEnginsPtr(EnginsFunc func); // If use shared dll then you
41
+ // need Call this function.
42
+ // Implemant at trdclengne
43
+ #else
44
+ PACKAGE_IMPORT void registEnginsPtr(EnginsFunc func);
45
+ #ifdef ARBTREGN_SHARED_DLL
46
+ PACKAGE nsdatabase** enginsShared();
42
47
  #else
43
- PACKAGE_IMPORT void registEnginsPtr(EnginsFunc func);
44
- #ifdef ARBTREGN_SHARED_DLL
45
- PACKAGE nsdatabase** enginsShared();
46
- #else
47
- PACKAGE_IMPORT nsdatabase** enginsShared(); //Implemant at ARBtEgn_Shared.dll
48
- #endif
48
+ PACKAGE_IMPORT nsdatabase** enginsShared(); // Implemant at ARBtEgn_Shared.dll
49
49
  #endif
50
+ #endif
51
+
52
+ } // namespace client
53
+ } // namespace tdap
54
+ } // namespace protocol
55
+ } // namespace db
56
+ } // namespace bzs
50
57
 
51
- }//namespace client
52
- }//namespace tdap
53
- }//namespace protocol
54
- }//namespace db
55
- }//namespace bzs
56
- #endif//BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
58
+ #endif // BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H