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
@@ -12,56 +12,56 @@
12
12
  GNU General Public License for more details.
13
13
 
14
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
15
+ along with this program; if not, write to the Free Software
16
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
17
  02111-1307, USA.
18
18
  =================================================================*/
19
+ #include <bzs/env/compiler.h>
19
20
  #include <bzs/env/tstring.h>
20
- #pragma hdrstop
21
-
22
21
  #include "btrDate.h"
23
22
  #include <bzs/rtl/datetime.h>
24
23
  #include <stdio.h>
25
24
  #include <stdlib.h>
26
25
  #include <time.h>
27
- #include <bzs/env/compiler.h>
26
+
28
27
  #ifdef LINUX
29
28
  #include <bzs/env/mbcswchrLinux.h>
29
+ #if __clang__
30
+ #include <pthread.h>
31
+ #endif
30
32
  #endif
31
33
 
32
34
  #pragma package(smart_init)
33
35
 
34
36
  #undef USETLS
35
- #if ((defined(_WIN32) && _MSC_VER) || __APPLE__)
37
+ #if ((defined(_WIN32) && _MSC_VER) || (__APPLE__ && !defined(__BCPLUSPLUS__)))
36
38
  #define USETLS
37
39
  #endif
38
40
 
39
-
40
41
  #ifdef USETLS
41
- extern tls_key g_tlsiID_SC2;
42
+ extern tls_key g_tlsiID_SC2;
42
43
  #else
43
- __THREAD _TCHAR __THREAD_BCB g_date2[45];
44
+ __THREAD _TCHAR __THREAD_BCB g_date2[45];
44
45
  #endif
45
46
 
46
47
  inline _TCHAR* databuf()
47
48
  {
48
- #ifdef USETLS
49
- _TCHAR* p = (_TCHAR*)tls_getspecific(g_tlsiID_SC2);
50
- if (p == NULL)
51
- {
52
- p = (_TCHAR*)new wchar_t[45];
53
- tls_setspecific(g_tlsiID_SC2, p);
54
- }
55
- return p;
56
- #else
57
- return g_date2;
58
- #endif
49
+ #ifdef USETLS
50
+ _TCHAR* p = (_TCHAR*)tls_getspecific(g_tlsiID_SC2);
51
+ if (p == NULL)
52
+ {
53
+ p = (_TCHAR*)new wchar_t[45];
54
+ tls_setspecific(g_tlsiID_SC2, p);
55
+ }
56
+ return p;
57
+ #else
58
+ return g_date2;
59
+ #endif
59
60
  }
60
61
 
61
-
62
62
  namespace bzs
63
63
  {
64
- using namespace rtl;
64
+ using namespace rtl;
65
65
  namespace db
66
66
  {
67
67
  namespace protocol
@@ -69,11 +69,8 @@ namespace protocol
69
69
  namespace tdap
70
70
  {
71
71
 
72
-
73
-
74
-
75
- #define dateToi64(p) (((__int64)JDate2Num(p) - 1721426)*86400) + _timezone
76
- #define timeToi64(t) t.ss+t.nn*60+t.hh*3600
72
+ #define dateToi64(p) (((__int64)JDate2Num(p) - 1721426) * 86400) + _timezone
73
+ #define timeToi64(t) t.ss + t.nn * 60 + t.hh * 3600
77
74
 
78
75
  __int64 btrTimeStamp::getDateTimeInt(int& time)
79
76
  {
@@ -85,20 +82,18 @@ __int64 btrTimeStamp::getDateTimeInt(int& time)
85
82
  return days;
86
83
  }
87
84
 
88
-
89
- btrTimeStamp::btrTimeStamp(unsigned __int64 i):i64(i){};
85
+ btrTimeStamp::btrTimeStamp(unsigned __int64 i) : i64(i){};
90
86
 
91
87
  btrTimeStamp::btrTimeStamp(const char* p)
92
88
  {
93
89
  fromString(p);
94
90
  }
95
91
 
96
- btrTimeStamp::btrTimeStamp(btrDate d, btrTime t):i64(0)
92
+ btrTimeStamp::btrTimeStamp(btrDate d, btrTime t) : i64(0)
97
93
  {
98
- i64 += timeToi64(t);
94
+ i64 += timeToi64(t);
99
95
  i64 += dateToi64(btrdtoa(d, (_TCHAR*)NULL));
100
96
  i64 *= 10000000;
101
-
102
97
  }
103
98
 
104
99
  #ifdef _WIN32
@@ -111,26 +106,27 @@ wchar_t* btrTimeStamp::toString(wchar_t* p)
111
106
  {
112
107
  int time;
113
108
  int v = (int)getDateTimeInt(time);
114
- #ifdef _UNICODE
115
- swprintf_s(p, 20, _T("%s %02d:%02d:%02d"), JNum2Date(v), time/3600,time%3600/60,time%3600%60);
116
- return p;
117
- #else
118
- char buf[30];
119
- sprintf_s(buf, 30, _T("%s %02d:%02d:%02d"), JNum2Date(v), time/3600,time%3600/60,time%3600%60);
120
- MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, buf, -1, p, 20);
121
- return p;
122
- #endif
123
-
109
+ #ifdef _UNICODE
110
+ swprintf_s(p, 20, _T("%s %02d:%02d:%02d"), JNum2Date(v), time / 3600,
111
+ time % 3600 / 60, time % 3600 % 60);
112
+ return p;
113
+ #else
114
+ char buf[30];
115
+ sprintf_s(buf, 30, _T("%s %02d:%02d:%02d"), JNum2Date(v), time / 3600,
116
+ time % 3600 / 60, time % 3600 % 60);
117
+ MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, buf, -1, p, 20);
118
+ return p;
119
+ #endif
124
120
  }
125
121
 
126
122
  void btrTimeStamp::fromString(const wchar_t* p)
127
123
  {
128
124
  i64 = 0;
129
- const wchar_t* p2 = wcsstr(p, L" ");
130
-
125
+ const wchar_t* p2 = wcsstr(p, L" ");
126
+
131
127
  if (p2)
132
128
  {
133
- btrTime t = atobtrt(p2+1);
129
+ btrTime t = atobtrt(p2 + 1);
134
130
  i64 += timeToi64(t);
135
131
  }
136
132
  i64 += dateToi64(p);
@@ -142,15 +138,17 @@ char* btrTimeStamp::toString(char* p)
142
138
  {
143
139
  int time;
144
140
  int v = (int)getDateTimeInt(time);
145
- #ifndef _UNICODE
146
- sprintf_s(p, 20, _T("%s %02d:%02d:%02d"), JNum2Date(v), time/3600,time%3600/60,time%3600%60);
147
- return p;
148
- #else
149
- wchar_t buf[30];
150
- swprintf_s(buf, 30, _T("%s %02d:%02d:%02d"), JNum2Date(v), time/3600,time%3600/60,time%3600%60);
151
- wtoa(p, buf, 20);
152
- return p;
153
- #endif
141
+ #ifndef _UNICODE
142
+ sprintf_s(p, 20, _T("%s %02d:%02d:%02d"), JNum2Date(v), time / 3600,
143
+ time % 3600 / 60, time % 3600 % 60);
144
+ return p;
145
+ #else
146
+ wchar_t buf[30];
147
+ swprintf_s(buf, 30, _T("%s %02d:%02d:%02d"), JNum2Date(v), time / 3600,
148
+ time % 3600 / 60, time % 3600 % 60);
149
+ wtoa(p, buf, 20);
150
+ return p;
151
+ #endif
154
152
  }
155
153
 
156
154
  void btrTimeStamp::fromString(const char* p)
@@ -160,15 +158,13 @@ void btrTimeStamp::fromString(const char* p)
160
158
 
161
159
  if (p2)
162
160
  {
163
- btrTime t = atobtrt(p2+1);
161
+ btrTime t = atobtrt(p2 + 1);
164
162
  i64 += timeToi64(t);
165
163
  }
166
164
  i64 += dateToi64(p);
167
165
  i64 *= 10000000;
168
166
  }
169
167
 
170
-
171
-
172
168
  bdate::bdate(int date)
173
169
  {
174
170
  m_date.i = date;
@@ -186,21 +182,21 @@ bdate::bdate(const _TCHAR* date)
186
182
  const _TCHAR* bdate::year_str()
187
183
  {
188
184
  _TCHAR* p = databuf();
189
- _stprintf_s(p , 30, _T("%d"), (int)m_date.yy);
190
- return p;
185
+ _stprintf_s(p, 30, _T("%d"), (int)m_date.yy);
186
+ return p;
191
187
  }
192
188
 
193
189
  const _TCHAR* bdate::month_str()
194
190
  {
195
191
  _TCHAR* p = databuf();
196
- _stprintf_s(p, 30,_T("%d"), (int)m_date.mm);
192
+ _stprintf_s(p, 30, _T("%d"), (int)m_date.mm);
197
193
  return p;
198
194
  }
199
195
 
200
196
  const _TCHAR* bdate::date_str()
201
197
  {
202
198
  _TCHAR* p = databuf();
203
- _stprintf_s(p, 30, _T("%d"), (int)m_date.dd);
199
+ _stprintf_s(p, 30, _T("%d"), (int)m_date.dd);
204
200
  return p;
205
201
  }
206
202
 
@@ -209,125 +205,154 @@ const _TCHAR* bdate::c_str()
209
205
  return btrdtoa(m_date, (_TCHAR*)NULL);
210
206
  }
211
207
 
212
- const char* dateFormatString(const char*){return "%04d/%02d/%02d";}
213
- const wchar_t* dateFormatString(const wchar_t*){return L"%04d/%02d/%02d";}
214
-
215
- const char* dateFormatString_h(const char*){return "%04d-%02d-%02d";}
216
- const wchar_t* dateFormatString_h(const wchar_t*){return L"%04d-%02d-%02d";}
208
+ const char* dateFormatString(const char*)
209
+ {
210
+ return "%04d/%02d/%02d";
211
+ }
212
+ const wchar_t* dateFormatString(const wchar_t*)
213
+ {
214
+ return L"%04d/%02d/%02d";
215
+ }
217
216
 
218
- const char* timeFormatString(const char*){return "%02d:%02d:%02d";}
219
- const wchar_t* timeFormatString(const wchar_t*){return L"%02d:%02d:%02d";}
217
+ const char* dateFormatString_h(const char*)
218
+ {
219
+ return "%04d-%02d-%02d";
220
+ }
221
+ const wchar_t* dateFormatString_h(const wchar_t*)
222
+ {
223
+ return L"%04d-%02d-%02d";
224
+ }
220
225
 
221
- const char* timeFormatString_h(const char*){return "%02d-%02d-%02d";}
222
- const wchar_t* timeFormatString_h(const wchar_t*){return L"%02d-%02d-%02d";}
226
+ const char* timeFormatString(const char*)
227
+ {
228
+ return "%02d:%02d:%02d";
229
+ }
230
+ const wchar_t* timeFormatString(const wchar_t*)
231
+ {
232
+ return L"%02d:%02d:%02d";
233
+ }
223
234
 
224
- template <class T>
225
- size_t _tcslen_(const T* p);
235
+ const char* timeFormatString_h(const char*)
236
+ {
237
+ return "%02d-%02d-%02d";
238
+ }
239
+ const wchar_t* timeFormatString_h(const wchar_t*)
240
+ {
241
+ return L"%02d-%02d-%02d";
242
+ }
226
243
 
227
- template <> size_t _tcslen_(const char* p){return strlen(p);}
228
- template <> size_t _tcslen_(const wchar_t* p){return wcslen(p);}
244
+ template <class T> size_t _tcslen_(const T* p);
229
245
 
246
+ template <> size_t _tcslen_(const char* p)
247
+ {
248
+ return strlen(p);
249
+ }
250
+ template <> size_t _tcslen_(const wchar_t* p)
251
+ {
252
+ return wcslen(p);
253
+ }
230
254
 
231
- template <class T>
232
- int _ttoi_(const T* p);
255
+ template <class T> int _ttoi_(const T* p);
233
256
 
234
- template <> int _ttoi_(const char* p){return atoi(p);}
235
- template <> int _ttoi_(const wchar_t* p){return _wtoi(p);}
257
+ template <> int _ttoi_(const char* p)
258
+ {
259
+ return atoi(p);
260
+ }
261
+ template <> int _ttoi_(const wchar_t* p)
262
+ {
263
+ return _wtoi(p);
264
+ }
236
265
 
237
- template <class T>
238
- T* formatDate(T* p, const btrDate& d, bool type_vb);
266
+ template <class T> T* formatDate(T* p, const btrDate& d, bool type_vb);
239
267
 
240
268
  template <> char* formatDate(char* p, const btrDate& d, bool type_vb)
241
269
  {
242
270
  if (type_vb)
243
- sprintf_s(p, 11, dateFormatString_h(p), d.yy, d.mm, d.dd);
271
+ sprintf_s(p, 20, dateFormatString_h(p), d.yy, d.mm, d.dd);
244
272
  else
245
- sprintf_s(p, 11, dateFormatString(p), d.yy, d.mm, d.dd);
273
+ sprintf_s(p, 20, dateFormatString(p), d.yy, d.mm, d.dd);
246
274
  return p;
247
275
  }
248
276
 
249
277
  template <> wchar_t* formatDate(wchar_t* p, const btrDate& d, bool type_vb)
250
278
  {
251
279
  if (type_vb)
252
- swprintf_s(p, 11, dateFormatString_h(p), d.yy, d.mm, d.dd);
280
+ swprintf_s(p, 20, dateFormatString_h(p), d.yy, d.mm, d.dd);
253
281
  else
254
- swprintf_s(p, 11, dateFormatString(p), d.yy, d.mm, d.dd);
282
+ swprintf_s(p, 20, dateFormatString(p), d.yy, d.mm, d.dd);
255
283
  return p;
256
284
  }
257
285
 
258
-
259
- template <class T>
260
- T* formatTime(T* p, const btrTime& d, bool type_vb);
286
+ template <class T> T* formatTime(T* p, const btrTime& d, bool type_vb);
261
287
 
262
288
  template <> char* formatTime(char* p, const btrTime& t, bool type_vb)
263
289
  {
264
290
  if (type_vb)
265
- sprintf_s(p, 9, timeFormatString_h(p), t.hh, t.nn, t.ss);
291
+ sprintf_s(p, 20, timeFormatString_h(p), t.hh, t.nn, t.ss);
266
292
  else
267
- sprintf_s(p, 9, timeFormatString(p), t.hh, t.nn, t.ss);
293
+ sprintf_s(p, 20, timeFormatString(p), t.hh, t.nn, t.ss);
268
294
  return p;
269
295
  }
270
296
 
271
297
  template <> wchar_t* formatTime(wchar_t* p, const btrTime& t, bool type_vb)
272
298
  {
273
299
  if (type_vb)
274
- swprintf_s(p, 9, timeFormatString_h(p), t.hh, t.nn, t.ss);
300
+ swprintf_s(p, 20, timeFormatString_h(p), t.hh, t.nn, t.ss);
275
301
  else
276
- swprintf_s(p, 9, timeFormatString(p), t.hh, t.nn, t.ss);
302
+ swprintf_s(p, 20, timeFormatString(p), t.hh, t.nn, t.ss);
277
303
  return p;
278
304
  }
279
305
 
280
- template <class T>
281
- btrDate atobtrd(const T* date)
306
+ template <class T> btrDate atobtrd(const T* date)
282
307
  {
283
308
  btrDate bt;
284
- bt.i=0;
285
- if (date &&
286
- ((_tcslen_(date)==10) || ((_tcslen_(date) > 10) && (date[10]== 'T' || date[10]== ' '))))
287
- {
288
- bt.yy = (short)_ttoi_(date);
309
+ bt.i = 0;
310
+ if (date &&
311
+ ((_tcslen_(date) == 10) ||
312
+ ((_tcslen_(date) > 10) && (date[10] == 'T' || date[10] == ' '))))
313
+ {
314
+ bt.yy = (short)_ttoi_(date);
289
315
  bt.mm = (char)_ttoi_(date + 5);
290
- bt.dd = (char)_ttoi_(date + 8);
316
+ bt.dd = (char)_ttoi_(date + 8);
291
317
  }
292
- return bt;
293
-
318
+ return bt;
294
319
  }
295
320
 
296
-
297
- template <class T>
298
- const T* btrdtoa(const btrDate& d, T* retbuf, bool type_vb)
321
+ template <class T> const T* btrdtoa(const btrDate& d, T* retbuf, bool type_vb)
299
322
  {
300
323
  T* p = retbuf;
301
- if (p == NULL)
324
+ if (p == NULL)
302
325
  p = (T*)databuf();
303
326
  return formatDate(p, d, type_vb);
304
327
  }
305
328
 
306
- template <class T>
307
- const T* btrttoa(const btrTime& t, T* retbuf, bool type_vb)
329
+ template <class T> const T* btrttoa(const btrTime& t, T* retbuf, bool type_vb)
308
330
  {
309
- T* p = retbuf;
310
- if (p == NULL)
311
- p = (T*)databuf();
312
- return formatTime(p, t, type_vb);
331
+ T* p = retbuf;
332
+ if (p == NULL)
333
+ p = (T*)databuf();
334
+ return formatTime(p, t, type_vb);
313
335
  }
314
336
 
315
- template <class T>
316
- btrTime atobtrt(const T* p)
337
+ template <class T> btrTime atobtrt(const T* p)
317
338
  {
318
- btrTime retVal;
319
- retVal.i = 0;
320
- if (p && (_tcslen_(p) == 8))
321
- {
322
- retVal.hh = (char)_ttoi_(p);
323
- retVal.nn = (char)_ttoi_(p + 3);
324
- retVal.ss = (char)_ttoi_(p + 6);
325
- }else
339
+ btrTime retVal;
340
+ retVal.i = 0;
341
+ if (p && (_tcslen_(p) == 8))
342
+ {
343
+ retVal.hh = (char)_ttoi_(p);
344
+ retVal.nn = (char)_ttoi_(p + 3);
345
+ retVal.ss = (char)_ttoi_(p + 6);
346
+ }
347
+ else
326
348
  retVal.i = 0;
327
349
  return retVal;
328
350
  }
329
351
 
330
- btrDate atobtrd(const char* p){return atobtrd<char>(p);}
352
+ btrDate atobtrd(const char* p)
353
+ {
354
+ return atobtrd<char>(p);
355
+ }
331
356
 
332
357
  const char* btrdtoa(const btrDate& d, char* retbuf, bool type_vb)
333
358
  {
@@ -339,8 +364,10 @@ const char* btrttoa(const btrTime& t, char* retbuf, bool type_vb)
339
364
  return btrttoa<char>(t, retbuf, type_vb);
340
365
  }
341
366
 
342
- btrTime atobtrt(const char* p){return atobtrt<char>(p);}
343
-
367
+ btrTime atobtrt(const char* p)
368
+ {
369
+ return atobtrt<char>(p);
370
+ }
344
371
 
345
372
  #ifdef _WIN32
346
373
  const wchar_t* btrdtoa(const btrDate& d, wchar_t* retbuf, bool type_vb)
@@ -353,96 +380,102 @@ const wchar_t* btrttoa(const btrTime& t, wchar_t* retbuf, bool type_vb)
353
380
  return btrttoa<wchar_t>(t, retbuf, type_vb);
354
381
  }
355
382
 
356
- btrDate atobtrd(const wchar_t* p){return atobtrd<wchar_t>(p);}
383
+ btrDate atobtrd(const wchar_t* p)
384
+ {
385
+ return atobtrd<wchar_t>(p);
386
+ }
357
387
 
358
- btrTime atobtrt(const wchar_t* p){return atobtrt<wchar_t>(p);}
388
+ btrTime atobtrt(const wchar_t* p)
389
+ {
390
+ return atobtrt<wchar_t>(p);
391
+ }
359
392
 
360
393
  #endif
361
394
 
362
395
  const _TCHAR* btrstoa(const btrDateTime& s, _TCHAR* retbuf, bool type_vb)
363
396
  {
364
- _TCHAR * p= retbuf;
365
- const btrDate& d = s.date;
366
- const btrTime& t = s.time;
367
- if (p==NULL)
368
- p = databuf();;
369
- if (type_vb)
370
- _stprintf_s(p, 21, _T("%04d-%02d-%02dT%02d:%02d:%02d"), d.yy, d.mm, d.dd, t.hh, t.nn, t.ss);
371
- else
372
- _stprintf_s(p, 21, _T("%04d/%02d/%02d %02d:%02d:%02d"), d.yy, d.mm, d.dd, t.hh, t.nn, t.ss);
373
- return p;
397
+ _TCHAR* p = retbuf;
398
+ const btrDate& d = s.date;
399
+ const btrTime& t = s.time;
400
+ if (p == NULL)
401
+ p = databuf();
402
+ ;
403
+ if (type_vb)
404
+ _stprintf_s(p, 21, _T("%04d-%02d-%02dT%02d:%02d:%02d"), d.yy, d.mm,
405
+ d.dd, t.hh, t.nn, t.ss);
406
+ else
407
+ _stprintf_s(p, 21, _T("%04d/%02d/%02d %02d:%02d:%02d"), d.yy, d.mm,
408
+ d.dd, t.hh, t.nn, t.ss);
409
+ return p;
374
410
  }
375
411
 
376
412
  btrDateTime atobtrs(const _TCHAR* p)
377
413
  {
378
- btrDateTime s;
379
- s.i64 = 0;
380
- s.date = atobtrd(p);
381
- const _TCHAR* tmp = _tcsstr(p, _T("T"));
382
- if (tmp)
383
- s.time = atobtrt(tmp + 1);
384
- else if ((tmp = _tcsstr(p, _T(" ")))!=NULL)
385
- s.time = atobtrt(tmp + 1);
386
- return s;
414
+ btrDateTime s;
415
+ s.i64 = 0;
416
+ s.date = atobtrd(p);
417
+ const _TCHAR* tmp = _tcsstr(p, _T("T"));
418
+ if (tmp)
419
+ s.time = atobtrt(tmp + 1);
420
+ else if ((tmp = _tcsstr(p, _T(" "))) != NULL)
421
+ s.time = atobtrt(tmp + 1);
422
+ return s;
387
423
  }
388
424
 
389
-
390
-
391
425
  int getNowDate()
392
426
  {
393
- btrDate dtb;
427
+ btrDate dtb;
394
428
  #ifdef _WIN32
395
- SYSTEMTIME pst;
429
+ SYSTEMTIME pst;
396
430
  GetLocalTime(&pst);
397
431
 
398
432
  dtb.yy = (short)pst.wYear;
399
433
  dtb.mm = (char)(pst.wMonth);
400
434
  dtb.dd = (char)pst.wDay;
401
435
  #else
402
- //not _WIN32
403
- struct tm* date;
404
- time_t now;
405
- time(&now);
406
- struct tm tmp;
407
- date = &tmp;
408
- localtime_x(date, &now);
409
-
410
- dtb.yy = (short)date->tm_year + 1900;
436
+ // not _WIN32
437
+ struct tm* date;
438
+ time_t now;
439
+ time(&now);
440
+ struct tm tmp;
441
+ date = &tmp;
442
+ localtime_x(date, &now);
443
+
444
+ dtb.yy = (short)date->tm_year + 1900;
411
445
  dtb.mm = (char)date->tm_mon + 1;
412
446
  dtb.dd = (char)date->tm_mday;
413
- #endif //NOT _WIN32
414
- return dtb.i;
415
-
447
+ #endif // NOT _WIN32
448
+ return dtb.i;
416
449
  }
417
450
 
418
451
  int getNowTime()
419
452
  {
420
- btrTime tmb;
453
+ btrTime tmb;
421
454
  #ifdef _WIN32
422
455
 
423
- tmb.i = 0;
424
- SYSTEMTIME pst;
456
+ tmb.i = 0;
457
+ SYSTEMTIME pst;
425
458
  GetLocalTime(&pst);
426
- tmb.hh = (char)pst.wHour; tmb.nn = (char)pst.wMinute;
459
+ tmb.hh = (char)pst.wHour;
460
+ tmb.nn = (char)pst.wMinute;
427
461
  tmb.ss = (char)pst.wSecond;
428
- tmb.uu = (char)(pst.wMilliseconds/10);
462
+ tmb.uu = (char)(pst.wMilliseconds / 10);
429
463
  #else
430
- struct tm* date;
431
- time_t now;
432
- time(&now);
433
- struct tm tmp;
434
- date = &tmp;
435
- localtime_x(date, &now);
436
- tmb.hh = (char)date->tm_hour;
437
- tmb.nn = (char)date->tm_min;
464
+ struct tm* date;
465
+ time_t now;
466
+ time(&now);
467
+ struct tm tmp;
468
+ date = &tmp;
469
+ localtime_x(date, &now);
470
+ tmb.hh = (char)date->tm_hour;
471
+ tmb.nn = (char)date->tm_min;
438
472
  tmb.ss = (char)date->tm_sec;
439
- tmb.uu = 00;
473
+ tmb.uu = 00;
440
474
  #endif
441
475
  return tmb.i;
442
476
  }
443
477
 
444
-
445
- }//namespace tdap
446
- }//namespace protocol
447
- }//namespace db
448
- }//namespace bzs
478
+ } // namespace tdap
479
+ } // namespace protocol
480
+ } // namespace db
481
+ } // namespace bzs