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,20 +12,16 @@
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
-
20
19
  #include <bzs/env/tstring.h>
21
- #pragma hdrstop
22
-
23
20
  #include <stdlib.h>
24
21
  #include <stdio.h>
25
22
  #include <time.h>
26
23
  #include <bzs/db/protocol/tdap/btrDate.h>
27
24
 
28
-
29
25
  namespace bzs
30
26
  {
31
27
  namespace db
@@ -35,50 +31,66 @@ namespace protocol
35
31
  namespace tdap
36
32
  {
37
33
 
38
- #pragma option -a-
39
- pragma_pack1
40
-
34
+ #pragma pack(push, 1)
35
+ pragma_pack1;
41
36
 
42
37
  #ifdef _WIN32
43
38
 
44
- const wchar_t wtime_format_ms[] = L"%02d:%02d:%02d.%d";
39
+ const wchar_t wtime_format_ms[] = L"%02d:%02d:%02d.%u";
45
40
  const wchar_t wtime_format[] = L"%02d:%02d:%02d";
46
- const wchar_t wdatetime_format_ms[] = L"%04d-%02d-%02d %02d:%02d:%02d.%d";
41
+ const wchar_t wdatetime_format_ms[] = L"%04d-%02d-%02d %02d:%02d:%02d.%u";
47
42
  const wchar_t wdatetime_format[] = L"%04d-%02d-%02d %02d:%02d:%02d";
48
- const wchar_t wdatetime_format_ms_i[] = L"%04d-%02d-%02d %02d:%02d:%02d.%d";
43
+ const wchar_t wdatetime_format_ms_i[] = L"%04d-%02d-%02d %02d:%02d:%02d.%u";
49
44
  const wchar_t wdatetime_format_i[] = L"%04d-%02d-%02d %02d:%02d:%02d";
50
45
 
51
- inline size_t _ttol_(const wchar_t* v){return _wtol(v);}
52
- inline size_t _tcslen_(const wchar_t* v){return wcslen(v);}
53
- inline wchar_t* _tcsncpy_(wchar_t* d, const wchar_t* s, size_t n){return wcsncpy(d,s,n);}
46
+ inline size_t _ttol_(const wchar_t* v)
47
+ {
48
+ return _wtol(v);
49
+ }
50
+ inline size_t _tcslen_(const wchar_t* v)
51
+ {
52
+ return wcslen(v);
53
+ }
54
+ inline wchar_t* _tcsncpy_(wchar_t* d, const wchar_t* s, size_t n)
55
+ {
56
+ return wcsncpy(d, s, n);
57
+ }
54
58
 
55
59
  #endif
56
60
 
57
- const char time_format_ms[] = "%02d:%02d:%02d.%-*d";
61
+ const char time_format_ms[] = "%02d:%02d:%02d.%u";
58
62
  const char time_format[] = "%02d:%02d:%02d";
59
- const char datetime_format_ms[] = "%04d-%02d-%02d %02d:%02d:%02d.%d";
63
+ const char datetime_format_ms[] = "%04d-%02d-%02d %02d:%02d:%02d.%u";
60
64
  const char datetime_format[] = "%04d-%02d-%02d %02d:%02d:%02d";
61
- const char datetime_format_ms_i[] = "%04d-%02d-%02d %02d:%02d:%02d.%d";
65
+ const char datetime_format_ms_i[] = "%04d-%02d-%02d %02d:%02d:%02d.%u";
62
66
  const char datetime_format_i[] = "%04d-%02d-%02d %02d:%02d:%02d";
63
67
 
64
- inline size_t _ttol_(const char* v){return atol(v);}
65
- inline size_t _tcslen_(const char* v){return strlen(v);}
66
- inline char* _tcsncpy_(char* d, const char* s, size_t n){return strncpy(d,s,n);}
67
-
68
+ inline size_t _ttol_(const char* v)
69
+ {
70
+ return atol(v);
71
+ }
72
+ inline size_t _tcslen_(const char* v)
73
+ {
74
+ return strlen(v);
75
+ }
76
+ inline char* _tcsncpy_(char* d, const char* s, size_t n)
77
+ {
78
+ return strncpy(d, s, n);
79
+ }
68
80
 
69
- #pragma warning(disable:4996)
81
+ #pragma warning(disable : 4996)
70
82
  union myDate
71
83
  {
72
- struct
73
- {
74
- unsigned int dd :5;
75
- unsigned int mm :4;
76
- unsigned int yy :15;
77
- unsigned int tmp:8;
78
- };
79
-
80
- int i;
81
-
84
+ struct
85
+ {
86
+ unsigned int dd : 5;
87
+ unsigned int mm : 4;
88
+ unsigned int yy : 15;
89
+ unsigned int tmp : 8;
90
+ };
91
+
92
+ int i;
93
+
82
94
  inline void setValue(int v, bool btrvValue = false)
83
95
  {
84
96
  if (btrvValue)
@@ -88,86 +100,82 @@ union myDate
88
100
  yy = btrd.yy;
89
101
  mm = btrd.mm;
90
102
  dd = btrd.dd;
91
- tmp=0;
103
+ tmp = 0;
92
104
  }
93
105
  else
94
106
  i = v;
95
107
  }
96
-
108
+
97
109
  inline int getValue(bool btrvValue = false)
98
110
  {
99
111
  if (btrvValue)
100
112
  {
101
113
  btrDate btrd;
102
- btrd.yy = yy;
114
+ btrd.yy = yy;
103
115
  btrd.mm = mm;
104
116
  btrd.dd = dd;
105
117
  return btrd.i;
106
118
  }
107
119
  return i;
108
120
  }
109
-
110
- inline char* toStr(char* p, bool btrvValue)
111
- {
121
+
122
+ inline char* toStr(char* p, bool btrvValue)
123
+ {
112
124
  if (btrvValue)
113
- sprintf(p, "%04d/%02d/%02d",yy, mm, dd);
125
+ sprintf(p, "%04d/%02d/%02d", yy, mm, dd);
114
126
  else
115
- sprintf(p, "%04d-%02d-%02d",yy, mm, dd);
116
- return p;
117
- }
127
+ sprintf(p, "%04d-%02d-%02d", yy, mm, dd);
128
+ return p;
129
+ }
118
130
 
119
131
  #ifdef _WIN32
120
- inline wchar_t* toStr(wchar_t* p, bool btrvValue)
121
- {
132
+ inline wchar_t* toStr(wchar_t* p, bool btrvValue)
133
+ {
122
134
  if (btrvValue)
123
- swprintf_s(p, 11, L"%04d/%02d/%02d",yy, mm, dd);
135
+ swprintf_s(p, 11, L"%04d/%02d/%02d", yy, mm, dd);
124
136
  else
125
- swprintf_s(p, 11, L"%04d-%02d-%02d",yy, mm, dd);
126
- return p;
127
- }
137
+ swprintf_s(p, 11, L"%04d-%02d-%02d", yy, mm, dd);
138
+ return p;
139
+ }
128
140
  #endif
129
141
 
130
- template <class T>
131
- inline myDate& operator=(const T* p)
132
- {
133
- tmp = 0;
134
- yy = _ttol_(p);
135
- mm = _ttol_(p+5);
136
- dd = _ttol_(p+8);
137
- return *this;
138
- }
139
-
142
+ template <class T> inline myDate& operator=(const T* p)
143
+ {
144
+ tmp = 0;
145
+ yy = _ttol_(p);
146
+ mm = _ttol_(p + 5);
147
+ dd = _ttol_(p + 8);
148
+ return *this;
149
+ }
140
150
  };
141
151
 
142
-
143
152
  struct myTime
144
153
  {
145
154
 
146
155
  private:
147
- int m_dec;
148
-
156
+ int m_dec;
157
+
149
158
  public:
150
- union
151
- {
152
- struct
153
- {
154
- unsigned __int64 ms :24;
155
- unsigned __int64 ss :6;
156
- unsigned __int64 nn :6;
157
- unsigned __int64 hh :10;
158
- unsigned __int64 unused :1;
159
- unsigned __int64 sign :1;
160
- unsigned __int64 tmp :16;
161
-
162
- };
163
- __int64 i64;
164
- };
165
-
159
+ union
160
+ {
161
+ struct
162
+ {
163
+ unsigned __int64 ms : 24;
164
+ unsigned __int64 ss : 6;
165
+ unsigned __int64 nn : 6;
166
+ unsigned __int64 hh : 10;
167
+ unsigned __int64 unused : 1;
168
+ unsigned __int64 sign : 1;
169
+ unsigned __int64 tmp : 16;
170
+ };
171
+ __int64 i64;
172
+ };
173
+
166
174
  public:
167
- inline myTime(int size):m_dec((size - 3)*2){};
175
+ inline myTime(int size) : m_dec((size - 3) * 2){};
168
176
 
169
- inline void setValue(__int64 v, bool btrvValue = false)
170
- {
177
+ inline void setValue(__int64 v, bool btrvValue = false)
178
+ {
171
179
 
172
180
  if (btrvValue)
173
181
  {
@@ -177,300 +185,300 @@ public:
177
185
  nn = btrt.nn;
178
186
  ss = btrt.ss;
179
187
  ms = btrt.uu * 10000;
180
- tmp=0;
188
+ tmp = 0;
181
189
  sign = 1;
182
- unused = 0;
190
+ unused = 0;
183
191
  return;
184
192
  }
185
- char* p=(char*)&i64;
186
- char* src=(char*)&v;
187
- if (m_dec)
188
- {
189
- p[0] = src[5];
190
- p[1] = src[4];
191
- p[2] = src[3];
192
- ms = ms >> (3-m_dec/2)*8;
193
- }
194
- p[3] = src[2];
195
- p[4] = src[1];
196
- p[5] = src[0];
197
- }
198
-
199
- inline __int64 getValue( bool btrvValue = false)
200
- {
201
- __int64 v = 0;
202
- char* src=(char*)&i64;
203
- char* p=(char*)&v;
204
- p[2] = src[3];
205
- p[1] = src[4];
206
- p[0] = src[5];
207
- if (m_dec)
208
- {
209
- ms = ms << (3-m_dec/2)*8;
210
- p[3] = src[2];
211
- p[4] = src[1];
212
- p[5] = src[0];
213
- }
193
+ char* p = (char*)&i64;
194
+ char* src = (char*)&v;
195
+ if (m_dec)
196
+ {
197
+ p[0] = src[5];
198
+ p[1] = src[4];
199
+ p[2] = src[3];
200
+ ms = ms >> (3 - m_dec / 2) * 8;
201
+ }
202
+ p[3] = src[2];
203
+ p[4] = src[1];
204
+ p[5] = src[0];
205
+ }
206
+
207
+ inline __int64 getValue(bool btrvValue = false)
208
+ {
209
+ __int64 v = 0;
210
+ char* src = (char*)&i64;
211
+ char* p = (char*)&v;
212
+ p[2] = src[3];
213
+ p[1] = src[4];
214
+ p[0] = src[5];
215
+ if (m_dec)
216
+ {
217
+ ms = ms << (3 - m_dec / 2) * 8;
218
+ p[3] = src[2];
219
+ p[4] = src[1];
220
+ p[5] = src[0];
221
+ }
214
222
  if (btrvValue)
215
223
  {
216
224
  btrTime btrt;
217
- btrt.hh = hh;
225
+ btrt.hh = hh;
218
226
  btrt.nn = nn;
219
227
  btrt.ss = ss;
220
- btrt.uu = (char)(ms/100000);
228
+ btrt.uu = (char)(ms / 100000);
221
229
  return btrt.i;
222
230
  }
223
- return v;
224
- }
225
-
226
- inline char* toStr(char* p)
227
- {
228
- if (m_dec)
229
- sprintf(p, time_format_ms, (int)hh, (int)nn, (int)ss, m_dec, (int)ms);
230
- else
231
- sprintf(p, time_format, (int)hh, (int)nn, (int)ss);
232
- return p;
233
- }
234
-
231
+ return v;
232
+ }
233
+
234
+ inline char* toStr(char* p)
235
+ {
236
+ if (m_dec)
237
+ sprintf(p, time_format_ms, (int)hh, (int)nn, (int)ss,
238
+ (unsigned int)ms);
239
+ else
240
+ sprintf(p, time_format, (int)hh, (int)nn, (int)ss);
241
+ return p;
242
+ }
243
+
235
244
  #ifdef _WIN32
236
- inline wchar_t* toStr(wchar_t* p)
237
- {
238
- if (m_dec)
239
- swprintf_s(p, 17, wtime_format_ms, (int)hh, (int)nn, (int)ss, (int)ms);
240
- else
241
- swprintf_s(p, 9, wtime_format, (int)hh, (int)nn, (int)ss);
242
- return p;
243
- }
245
+ inline wchar_t* toStr(wchar_t* p)
246
+ {
247
+ if (m_dec)
248
+ swprintf_s(p, 17, wtime_format_ms, (int)hh, (int)nn, (int)ss,
249
+ (unsigned int)ms);
250
+ else
251
+ swprintf_s(p, 9, wtime_format, (int)hh, (int)nn, (int)ss);
252
+ return p;
253
+ }
244
254
  #endif
245
255
 
246
- template <class T>
247
- inline myTime& operator=(const T* p)
248
- {
249
- sign = 1;
250
- unused = 0;
251
- ms = 0;
252
- hh = _ttol_(p);
253
- nn = _ttol_(p+3);
254
- ss = _ttol_(p+6);
255
- if (m_dec && _tcslen_(p)>9)
256
- {
257
- T tmp[10]={0x00};
258
- _tcsncpy_(tmp, p+9, (size_t)m_dec);
259
- ms = _ttol_(tmp);
260
- }
261
- return *this;
262
- }
256
+ template <class T> inline myTime& operator=(const T* p)
257
+ {
258
+ sign = 1;
259
+ unused = 0;
260
+ ms = 0;
261
+ hh = _ttol_(p);
262
+ nn = _ttol_(p + 3);
263
+ ss = _ttol_(p + 6);
264
+ if (m_dec && _tcslen_(p) > 9)
265
+ {
266
+ T tmp[10] = { 0x00 };
267
+ _tcsncpy_(tmp, p + 9, (size_t)m_dec);
268
+ ms = _ttol_(tmp);
269
+ }
270
+ return *this;
271
+ }
263
272
  };
264
273
 
265
-
266
274
  struct myDateTime
267
275
  {
268
276
  private:
269
- int m_dec;
270
-
277
+ int m_dec;
278
+
271
279
  public:
272
- union
273
- {
274
- struct
275
- {
276
- unsigned __int64 ms :24;
277
- unsigned __int64 ss :6;
278
- unsigned __int64 nn :6;
279
- unsigned __int64 hh :5;
280
- unsigned __int64 dd :5;
281
- unsigned __int64 yymm :17; //yy*13+mm (yy 0-9999, mm 0-12)
282
- unsigned __int64 sign :1;
283
- };
284
- __int64 i64;
285
- };
286
-
287
- inline myDateTime(int size):m_dec((size - 5)*2){};
288
-
289
- inline void setValue(__int64 v)
290
- {
291
- char* p=(char*)&i64;
292
- char* src=(char*)&v;
293
- if (m_dec)
294
- {
295
- p[0] = src[7];
296
- p[1] = src[6];
297
- p[2] = src[5];
298
- ms = ms >> (3-m_dec/2)*8;
299
- }
300
- p[3] = src[4];
301
- p[4] = src[3];
302
- p[5] = src[2];
303
- p[6] = src[1];
304
- p[7] = src[0];
305
-
306
- }
307
-
308
- inline __int64 getValue()
309
- {
310
- __int64 v = 0;
311
- char* src=(char*)&i64;
312
- char* p=(char*)&v;
313
- p[4] = src[3];
314
- p[3] = src[4];
315
- p[2] = src[5];
316
- p[1] = src[6];
317
- p[0] = src[7];
318
- if (m_dec)
319
- {
320
- ms = ms << (3-m_dec/2)*8;
321
- p[5] = src[2];
322
- p[6] = src[1];
323
- p[7] = src[0];
324
- }
325
- return v;
326
- }
327
-
328
- inline char* toStr(char* p)
329
- {
330
- if (m_dec)
331
- sprintf(p, datetime_format_ms ,(int)(yymm/13),(int)(yymm%13), (int)dd, (int)hh, (int)nn, (int)ss,(int) ms);
332
- else
333
- sprintf(p, datetime_format, (int)(yymm/13),(int)(yymm%13), (int)dd, (int)hh, (int)nn, (int)ss);
334
- return p;
335
- }
336
-
280
+ union
281
+ {
282
+ struct
283
+ {
284
+ unsigned __int64 ms : 24;
285
+ unsigned __int64 ss : 6;
286
+ unsigned __int64 nn : 6;
287
+ unsigned __int64 hh : 5;
288
+ unsigned __int64 dd : 5;
289
+ unsigned __int64 yymm : 17; // yy*13+mm (yy 0-9999, mm 0-12)
290
+ unsigned __int64 sign : 1;
291
+ };
292
+ __int64 i64;
293
+ };
294
+
295
+ inline myDateTime(int size) : m_dec((size - 5) * 2){};
296
+
297
+ inline void setValue(__int64 v)
298
+ {
299
+ char* p = (char*)&i64;
300
+ char* src = (char*)&v;
301
+ if (m_dec)
302
+ {
303
+ p[0] = src[7];
304
+ p[1] = src[6];
305
+ p[2] = src[5];
306
+ ms = ms >> (3 - m_dec / 2) * 8;
307
+ }
308
+ p[3] = src[4];
309
+ p[4] = src[3];
310
+ p[5] = src[2];
311
+ p[6] = src[1];
312
+ p[7] = src[0];
313
+ }
314
+
315
+ inline __int64 getValue()
316
+ {
317
+ __int64 v = 0;
318
+ char* src = (char*)&i64;
319
+ char* p = (char*)&v;
320
+ p[4] = src[3];
321
+ p[3] = src[4];
322
+ p[2] = src[5];
323
+ p[1] = src[6];
324
+ p[0] = src[7];
325
+ if (m_dec)
326
+ {
327
+ ms = ms << (3 - m_dec / 2) * 8;
328
+ p[5] = src[2];
329
+ p[6] = src[1];
330
+ p[7] = src[0];
331
+ }
332
+ return v;
333
+ }
334
+
335
+ inline char* toStr(char* p)
336
+ {
337
+ if (m_dec)
338
+ sprintf(p, datetime_format_ms, (int)(yymm / 13), (int)(yymm % 13),
339
+ (int)dd, (int)hh, (int)nn, (int)ss, (unsigned int)ms);
340
+ else
341
+ sprintf(p, datetime_format, (int)(yymm / 13), (int)(yymm % 13),
342
+ (int)dd, (int)hh, (int)nn, (int)ss);
343
+ return p;
344
+ }
345
+
337
346
  #ifdef _WIN32
338
- inline wchar_t* toStr(wchar_t* p)
339
- {
340
- if (m_dec)
341
- swprintf_s(p, 26, wdatetime_format_ms, (int)(yymm/13), (int)(yymm%13), (int)dd, (int)hh, (int)nn, (int)ss, (int)ms);
342
- else
343
- swprintf_s(p, 20, wdatetime_format, (int)(yymm/13), (int)(yymm%13), (int)dd, (int)hh, (int)nn, (int)ss);
344
- return p;
345
- }
347
+ inline wchar_t* toStr(wchar_t* p)
348
+ {
349
+ if (m_dec)
350
+ swprintf_s(p, 26, wdatetime_format_ms, (int)(yymm / 13),
351
+ (int)(yymm % 13), (int)dd, (int)hh, (int)nn, (int)ss,
352
+ (unsigned int)ms);
353
+ else
354
+ swprintf_s(p, 20, wdatetime_format, (int)(yymm / 13),
355
+ (int)(yymm % 13), (int)dd, (int)hh, (int)nn, (int)ss);
356
+ return p;
357
+ }
346
358
  #endif
347
359
 
348
- template <class T>
349
- myDateTime& operator=(const T* p)
350
- {
351
- sign = 1;
352
- ms = 0 ;
353
- yymm = _ttol_(p)*13+_ttol_(p+5);
354
- dd = _ttol_(p+8);
355
- hh = _ttol_(p+11);
356
- nn = _ttol_(p+14);
357
- ss = _ttol_(p+17);
358
- if (m_dec && _tcslen_(p)>20)
359
- {
360
- T tmp[10]={0x00};
361
- _tcsncpy_(tmp, p+20, (size_t)m_dec);
362
- ms = _ttol_(tmp);
363
- }
364
- return *this;
365
- }
366
-
360
+ template <class T> myDateTime& operator=(const T* p)
361
+ {
362
+ sign = 1;
363
+ ms = 0;
364
+ yymm = _ttol_(p) * 13 + _ttol_(p + 5);
365
+ dd = _ttol_(p + 8);
366
+ hh = _ttol_(p + 11);
367
+ nn = _ttol_(p + 14);
368
+ ss = _ttol_(p + 17);
369
+ if (m_dec && _tcslen_(p) > 20)
370
+ {
371
+ T tmp[10] = { 0x00 };
372
+ _tcsncpy_(tmp, p + 20, (size_t)m_dec);
373
+ ms = _ttol_(tmp);
374
+ }
375
+ return *this;
376
+ }
367
377
  };
368
378
 
369
379
  struct myTimeStamp
370
380
  {
371
381
  private:
372
- int m_dec;
373
-
382
+ int m_dec;
383
+
374
384
  public:
375
- union
376
- {
377
- struct
378
- {
379
- unsigned __int64 ms :24;
380
- unsigned __int64 datetime:32;
381
- unsigned __int64 tmp :8;
382
- };
383
- __int64 i64;
384
- };
385
-
386
- inline myTimeStamp(int size):m_dec((size - 4)*2){};
387
-
388
- inline void setValue(__int64 v)
389
- {
390
- char* p=(char*)&i64;
391
- char* src=(char*)&v;
392
- if (m_dec)
393
- {
394
- p[0] = src[6];
395
- p[1] = src[5];
396
- p[2] = src[4];
397
- ms = ms >> (3-m_dec/2)*8;
398
- }
399
- p[3] = src[3];
400
- p[4] = src[2];
401
- p[5] = src[1];
402
- p[6] = src[0];
403
- }
404
-
405
- inline __int64 getValue()
406
- {
407
- __int64 v = 0;
408
- char* src=(char*)&i64;
409
- char* p=(char*)&v;
410
-
411
- p[3] = src[3];
412
- p[2] = src[4];
413
- p[1] = src[5];
414
- p[0] = src[6];
415
- if (m_dec)
416
- {
417
- ms = ms << (3-m_dec/2)*8;
418
- p[4] = src[2];
419
- p[5] = src[1];
420
- p[6] = src[0];
421
- }
422
- return v;
423
- }
424
-
385
+ union
386
+ {
387
+ struct
388
+ {
389
+ unsigned __int64 ms : 24;
390
+ unsigned __int64 datetime : 32;
391
+ unsigned __int64 tmp : 8;
392
+ };
393
+ __int64 i64;
394
+ };
395
+
396
+ inline myTimeStamp(int size) : m_dec((size - 4) * 2){};
397
+
398
+ inline void setValue(__int64 v)
399
+ {
400
+ char* p = (char*)&i64;
401
+ char* src = (char*)&v;
402
+ if (m_dec)
403
+ {
404
+ p[0] = src[6];
405
+ p[1] = src[5];
406
+ p[2] = src[4];
407
+ ms = ms >> (3 - m_dec / 2) * 8;
408
+ }
409
+ p[3] = src[3];
410
+ p[4] = src[2];
411
+ p[5] = src[1];
412
+ p[6] = src[0];
413
+ }
414
+
415
+ inline __int64 getValue()
416
+ {
417
+ __int64 v = 0;
418
+ char* src = (char*)&i64;
419
+ char* p = (char*)&v;
420
+
421
+ p[3] = src[3];
422
+ p[2] = src[4];
423
+ p[1] = src[5];
424
+ p[0] = src[6];
425
+ if (m_dec)
426
+ {
427
+ ms = ms << (3 - m_dec / 2) * 8;
428
+ p[4] = src[2];
429
+ p[5] = src[1];
430
+ p[6] = src[0];
431
+ }
432
+ return v;
433
+ }
434
+
425
435
  #ifdef _WIN32
426
- inline wchar_t* toStr(wchar_t* p)
427
- {
428
- struct tm* st;
429
- time_t v = (time_t)datetime;
430
- st = localtime(&v);
431
-
432
- if (m_dec)
433
- swprintf_s(p, 26, wdatetime_format_ms_i
434
- ,st->tm_year+1900, st->tm_mon+1, st->tm_mday
435
- ,st->tm_hour, st->tm_min, st->tm_sec, (int)ms);
436
- else
437
- swprintf_s(p, 20, wdatetime_format_i
438
- ,st->tm_year+1900, st->tm_mon+1, st->tm_mday
439
- ,st->tm_hour, st->tm_min, st->tm_sec);
440
- return p;
441
- }
436
+ inline wchar_t* toStr(wchar_t* p)
437
+ {
438
+ struct tm* st;
439
+ time_t v = (time_t)datetime;
440
+ st = localtime(&v);
441
+
442
+ if (m_dec)
443
+ swprintf_s(p, 26, wdatetime_format_ms_i, st->tm_year + 1900,
444
+ st->tm_mon + 1, st->tm_mday, st->tm_hour, st->tm_min,
445
+ st->tm_sec, (unsigned int)ms);
446
+ else
447
+ swprintf_s(p, 20, wdatetime_format_i, st->tm_year + 1900,
448
+ st->tm_mon + 1, st->tm_mday, st->tm_hour, st->tm_min,
449
+ st->tm_sec);
450
+ return p;
451
+ }
442
452
  #endif
443
453
 
444
- inline char* toStr(char* p)
445
- {
446
- struct tm* st;
447
- time_t v = (time_t)datetime;
448
- st = localtime(&v);
449
-
450
- if (m_dec)
451
- sprintf(p, datetime_format_ms_i
452
- ,st->tm_year+1900, st->tm_mon+1, st->tm_mday
453
- ,st->tm_hour, st->tm_min, st->tm_sec, (int)ms);
454
- else
455
- sprintf(p, datetime_format_i
456
- ,st->tm_year+1900, st->tm_mon+1, st->tm_mday
457
- ,st->tm_hour, st->tm_min, st->tm_sec);
458
- return p;
459
- }
460
-
454
+ inline char* toStr(char* p)
455
+ {
456
+ struct tm* st;
457
+ time_t v = (time_t)datetime;
458
+ st = localtime(&v);
459
+
460
+ if (m_dec)
461
+ sprintf(p, datetime_format_ms_i, st->tm_year + 1900, st->tm_mon + 1,
462
+ st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec,
463
+ (unsigned int)ms);
464
+ else
465
+ sprintf(p, datetime_format_i, st->tm_year + 1900, st->tm_mon + 1,
466
+ st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec);
467
+ return p;
468
+ }
461
469
  };
462
470
  inline int btrdateToMydate(int btrd)
463
471
  {
464
- myDate myd;
472
+ myDate myd;
465
473
  myd.setValue(btrd, true);
466
- return myd.getValue(true);
474
+ return myd.getValue(true);
467
475
  }
468
476
 
469
477
  inline __int64 btrtimeToMytime(int btrt)
470
478
  {
471
- myTime myt(4);
479
+ myTime myt(4);
472
480
  myt.setValue(btrt, true);
473
- return myt.getValue(true);
481
+ return myt.getValue(true);
474
482
  }
475
483
 
476
484
  inline int mydateToBtrdate(int mydate)
@@ -482,19 +490,18 @@ inline int mydateToBtrdate(int mydate)
482
490
 
483
491
  inline int mytimeToBtrtime(__int64 mytime, int size)
484
492
  {
485
- myTime myt(size);
493
+ myTime myt(size);
486
494
  myt.setValue(mytime);
487
- return (int)myt.getValue(true);
495
+ return (int)myt.getValue(true);
488
496
  }
489
- #pragma warning(default:4996)
490
-
497
+ #pragma warning(default : 4996)
491
498
 
492
- #pragma option -a
493
- pragma_pop
499
+ #pragma pack(pop)
500
+ pragma_pop;
494
501
 
495
- }//namespace tdap
496
- }//namespace protocol
497
- }//namespace db
498
- }//namespace bzs
502
+ } // namespace tdap
503
+ } // namespace protocol
504
+ } // namespace db
505
+ } // namespace bzs
499
506
 
500
507
  //#endif //MYDATETIME_H