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,8 +12,8 @@
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
19
  #include "stdafx.h"
@@ -24,7 +24,8 @@
24
24
 
25
25
  using namespace bzs::db::protocol::tdap::client;
26
26
 
27
- STDMETHODIMP CDatabase::Open(BSTR Uri, eSchemaType SchemaType, eOpenMode Mode, BSTR Dir, BSTR Ownername, VARIANT_BOOL* Param6)
27
+ STDMETHODIMP CDatabase::Open(BSTR Uri, eSchemaType SchemaType, eOpenMode Mode,
28
+ BSTR Dir, BSTR Ownername, VARIANT_BOOL* Param6)
28
29
  {
29
30
  *Param6 = m_db->open(Uri, (short)SchemaType, Mode, Dir, Ownername);
30
31
  return S_OK;
@@ -40,48 +41,50 @@ STDMETHODIMP CDatabase::get_DbDef(IDbDef** Value)
40
41
  CComObject<CDbDef>::CreateInstance(&dbDefObj);
41
42
  if (dbDefObj)
42
43
  {
43
- dbDefObj->m_dbDef = m_db->dbDef();
44
+ dbDefObj->m_dbDef = m_db->dbDef();
44
45
  m_IsAtatchOK = false;
45
- IDbDef* dbdef;
46
- dbDefObj->QueryInterface(IID_IDbDef, (void**)&dbdef);
47
- _ASSERTE(dbdef);
48
- *Value = dbdef;
49
- }else
50
- *Value = 0;
51
-
46
+ IDbDef* dbdef;
47
+ dbDefObj->QueryInterface(IID_IDbDef, (void**)&dbdef);
48
+ _ASSERTE(dbdef);
49
+ *Value = dbdef;
50
+ }
51
+ else
52
+ *Value = 0;
52
53
 
53
54
  return S_OK;
54
55
  }
55
56
 
56
- STDMETHODIMP CDatabase::OpenTable(VARIANT TableID, eOpenMode Mode, VARIANT_BOOL AutoCreate, BSTR OwnerName, BSTR Uri,
57
- ITable** ret)
57
+ STDMETHODIMP CDatabase::OpenTable(VARIANT TableID, eOpenMode Mode,
58
+ VARIANT_BOOL AutoCreate, BSTR OwnerName,
59
+ BSTR Uri, ITable** ret)
58
60
  {
59
61
 
60
62
  if (!m_db->dbDef())
61
63
  return Error("database is not opened. ", IID_IDatabase);
62
64
 
63
65
  table* tb = NULL;
64
- if (TableID.vt == VT_BSTR)
65
- tb = m_db->openTable(TableID.bstrVal, Mode, (bool)AutoCreate, OwnerName, Uri);
66
+ if (TableID.vt == VT_BSTR)
67
+ tb = m_db->openTable(TableID.bstrVal, Mode, (bool)AutoCreate, OwnerName,
68
+ Uri);
66
69
  else if ((TableID.vt == VT_I2) || (TableID.vt == VT_I4))
67
- tb = m_db->openTable(TableID.iVal, Mode, (bool)AutoCreate, OwnerName, Uri);
70
+ tb = m_db->openTable(TableID.iVal, Mode, (bool)AutoCreate, OwnerName,
71
+ Uri);
68
72
 
69
- if (tb == NULL)
70
- return Error("Invalid tableid", IID_IDatabase);
73
+ if (tb == NULL)
74
+ return Error("Invalid tableid", IID_IDatabase);
71
75
 
72
76
  CComObject<CTableTd>* ptb;
73
77
  CComObject<CTableTd>::CreateInstance(&ptb);
74
-
78
+
75
79
  if (ptb)
76
80
  {
77
- ptb->m_tb = tb;
78
- ptb->m_db = m_db;
79
- tb->setOptionalData((void*)ptb);
80
- ITable* tb;
81
- ptb->QueryInterface(IID_ITable, (void**)&tb);
82
- _ASSERTE(tb);
83
- *ret = tb;
84
- m_IsAtatchOK = false;
81
+ ptb->m_tb.reset(tb, releaseTable);
82
+ tb->setOptionalData((void*)ptb);
83
+ ITable* itb;
84
+ ptb->QueryInterface(IID_ITable, (void**)&itb);
85
+ _ASSERTE(itb);
86
+ *ret = itb;
87
+ m_IsAtatchOK = false;
85
88
  }
86
89
  else
87
90
  *ret = NULL;
@@ -89,23 +92,28 @@ STDMETHODIMP CDatabase::OpenTable(VARIANT TableID, eOpenMode Mode, VARIANT_BOOL
89
92
  return S_OK;
90
93
  }
91
94
 
92
- STDMETHODIMP CDatabase::AtatchDatabase(__int64* nativeDatabase)
95
+ STDMETHODIMP CDatabase::AtatchDatabase(__int64* nativeDatabase,
96
+ VARIANT_BOOL noRelease)
93
97
  {
94
98
  if ((nativeDatabase) && (m_IsAtatchOK))
95
99
  {
96
100
  bzs::db::protocol::tdap::client::database* nativePtr =
97
- reinterpret_cast<bzs::db::protocol::tdap::client::database*>(nativeDatabase);
101
+ reinterpret_cast<bzs::db::protocol::tdap::client::database*>(
102
+ nativeDatabase);
98
103
  if (nativePtr)
99
104
  {
100
- Close();
101
- m_db->release();
105
+ if (m_needRelese)
106
+ {
107
+ Close();
108
+ m_db->release();
109
+ }
110
+ m_needRelese = (noRelease == 0);
102
111
  m_db = nativePtr;
103
- return S_OK;
112
+ return S_OK;
104
113
  }
105
114
  return Error("Can not get native database pointer.", IID_IDatabase);
106
115
  }
107
116
  return Error("Current database is already used.", IID_IDatabase);
108
-
109
117
  }
110
118
 
111
119
  STDMETHODIMP CDatabase::get_RootDir(BSTR* Value)
@@ -146,7 +154,6 @@ STDMETHODIMP CDatabase::EndTrn()
146
154
  {
147
155
  m_db->endTrn();
148
156
  return S_OK;
149
-
150
157
  }
151
158
 
152
159
  STDMETHODIMP CDatabase::get_NativeDatabase(__int64** Value)
@@ -192,7 +199,8 @@ STDMETHODIMP CDatabase::Close()
192
199
  return S_OK;
193
200
  }
194
201
 
195
- STDMETHODIMP CDatabase::Connect(BSTR URI, VARIANT_BOOL newConnection, VARIANT_BOOL* Value)
202
+ STDMETHODIMP CDatabase::Connect(BSTR URI, VARIANT_BOOL newConnection,
203
+ VARIANT_BOOL* Value)
196
204
 
197
205
  {
198
206
  *Value = m_db->connect(URI, newConnection);
@@ -213,14 +221,15 @@ STDMETHODIMP CDatabase::get_EnableTrn(VARIANT_BOOL* Value)
213
221
 
214
222
  STDMETHODIMP CDatabase::GetBtrVersion(int index, ITdVersion** Value)
215
223
  {
216
- if ((index < 0) || (index > 2))
224
+ if ((index < 0) || (index > 2))
217
225
  return Error("Invalid index", IID_IDatabase);
218
226
  bzs::db::protocol::tdap::btrVersions vers;
219
227
  m_db->getBtrVersion(&vers);
220
228
 
221
- CComObject<CTdVersion> *ptb;
229
+ CComObject<CTdVersion>* ptb;
222
230
  CComObject<CTdVersion>::CreateInstance(&ptb);
223
- ptb->m_ver = vers.versions[index]; //not refarence. no need the this life time control
231
+ ptb->m_ver = vers.versions[index]; // not refarence. no need the this life
232
+ // time control
224
233
  ITdVersion* tdVer;
225
234
  ptb->QueryInterface(IID_ITdVersion, (void**)&tdVer);
226
235
  _ASSERTE(tdVer);
@@ -303,8 +312,7 @@ STDMETHODIMP CDatabase::get_OpenTableCount(short* Value)
303
312
 
304
313
  STDMETHODIMP CDatabase::ReadDatabaseDirectory(BSTR* Value)
305
314
  {
306
- wchar_t tmp[255] =
307
- {NULL};
315
+ wchar_t tmp[255] = { NULL };
308
316
  m_db->readDatabaseDirectory(tmp, (uchar_td)255);
309
317
  *Value = ::SysAllocString(tmp);
310
318
  return S_OK;
@@ -327,177 +335,173 @@ STDMETHODIMP CDatabase::TdapErr(OLE_HANDLE hWnd, BSTR* Value)
327
335
  {
328
336
  if (Value)
329
337
  {
330
- wchar_t tmp[512] =
331
- {NULL};
338
+ wchar_t tmp[512] = { NULL };
332
339
  m_db->tdapErr((HWND)hWnd, tmp);
333
340
  *Value = ::SysAllocString(tmp);
334
341
  }
335
342
  else
336
343
  m_db->tdapErr((HWND)hWnd);
337
344
  return S_OK;
338
-
339
345
  }
340
346
 
341
-
342
-
343
347
  STDMETHODIMP CDatabase::Clone(IDatabase** Value)
344
348
  {
345
- CComObject<CDatabase> *ptb;
349
+ CComObject<CDatabase>* ptb;
346
350
  CComObject<CDatabase>::CreateInstance(&ptb);
347
- HRESULT ret = ptb->AtatchDatabase((__int64*)m_db->clone());
348
- if (ret==S_OK)
349
- {
350
- IDatabase* dbPtr;
351
- ptb->QueryInterface(IID_IDatabase, (void**)&dbPtr);
352
- _ASSERTE(dbPtr);
353
- *Value = dbPtr;
354
- return S_OK;
355
- }
356
- return ret;
351
+ HRESULT ret = ptb->AtatchDatabase((__int64*)m_db->clone());
352
+ if (ret == S_OK)
353
+ {
354
+ IDatabase* dbPtr;
355
+ ptb->QueryInterface(IID_IDatabase, (void**)&dbPtr);
356
+ _ASSERTE(dbPtr);
357
+ *Value = dbPtr;
358
+ return S_OK;
359
+ }
360
+ return ret;
357
361
  }
358
362
 
359
363
  STDMETHODIMP CDatabase::AssignSchemaData(IDbDef* Src, short* Value)
360
364
  {
361
- CDbDef* dbdef = NULL;
362
- dbdef = dynamic_cast<CDbDef*>(Src);
363
- _ASSERTE(dbdef);
364
- m_db->assignSchemaData(dbdef->m_dbDef);
365
- return S_OK;
365
+ CDbDef* dbdef = NULL;
366
+ dbdef = dynamic_cast<CDbDef*>(Src);
367
+ _ASSERTE(dbdef);
368
+ m_db->assignSchemaData(dbdef->m_dbDef);
369
+ return S_OK;
366
370
  }
367
371
 
368
- STDMETHODIMP CDatabase::Continuous(eContinusOpr Op, VARIANT_BOOL inclideRepfile, eContinusStatus* Value)
372
+ STDMETHODIMP CDatabase::Continuous(eContinusOpr Op, VARIANT_BOOL inclideRepfile,
373
+ eContinusStatus* Value)
369
374
  {
370
- *Value = (eContinusStatus)m_db->continuous((char_td)Op, inclideRepfile);
371
- return S_OK;
375
+ *Value = (eContinusStatus)m_db->continuous((char_td)Op, inclideRepfile);
376
+ return S_OK;
372
377
  }
373
378
 
374
- STDMETHODIMP CDatabase::ConvertTable(short TableIndex, VARIANT_BOOL Turbo, BSTR OwnerName)
379
+ STDMETHODIMP CDatabase::ConvertTable(short TableIndex, VARIANT_BOOL Turbo,
380
+ BSTR OwnerName)
375
381
  {
376
- m_db->convertTable(TableIndex, Turbo, OwnerName);
377
- return S_OK;
382
+ m_db->convertTable(TableIndex, Turbo, OwnerName);
383
+ return S_OK;
378
384
  }
379
385
 
380
- STDMETHODIMP CDatabase::CopyTableData(ITable* Dest, ITable* Src, VARIANT_BOOL Turbo,int Offset, short KeyNum
381
- , int MaxSkip, short* Value)
386
+ STDMETHODIMP CDatabase::CopyTableData(ITable* Dest, ITable* Src,
387
+ VARIANT_BOOL Turbo, int Offset,
388
+ short KeyNum, int MaxSkip, short* Value)
382
389
  {
383
- CTableTd* dest = dynamic_cast<CTableTd*>(Dest);
384
- CTableTd* src = dynamic_cast<CTableTd*>(Src);
390
+ CTableTd* dest = dynamic_cast<CTableTd*>(Dest);
391
+ CTableTd* src = dynamic_cast<CTableTd*>(Src);
385
392
 
386
393
  _ASSERTE(dest);
387
394
  _ASSERTE(dest);
388
395
 
389
- *Value = m_db->copyTableData(dest->m_tb, src->m_tb, Turbo, KeyNum, MaxSkip);
390
- return S_OK;
396
+ *Value = m_db->copyTableData(dest->m_tb.get(), src->m_tb.get(), Turbo,
397
+ KeyNum, MaxSkip);
398
+ return S_OK;
391
399
  }
392
400
 
393
- STDMETHODIMP CDatabase::CreateTable(short FileNum, BSTR Uri, VARIANT_BOOL* Value)
401
+ STDMETHODIMP CDatabase::CreateTable(short FileNum, BSTR Uri,
402
+ VARIANT_BOOL* Value)
394
403
  {
395
- *Value = m_db->createTable(FileNum, Uri);
396
- return S_OK;
404
+ *Value = m_db->createTable(FileNum, Uri);
405
+ return S_OK;
397
406
  }
398
407
 
399
408
  STDMETHODIMP CDatabase::ExistsTableFile(short TableIndex, BSTR OwnerName)
400
409
  {
401
- m_db->existsTableFile(TableIndex, OwnerName);
402
- return S_OK;
403
-
410
+ m_db->existsTableFile(TableIndex, OwnerName);
411
+ return S_OK;
404
412
  }
405
413
 
406
414
  STDMETHODIMP CDatabase::GetTableUri(short FileNum, BSTR* Value)
407
415
  {
408
- wchar_t tmp[MAX_PATH]={NULL};
416
+ wchar_t tmp[MAX_PATH] = { NULL };
409
417
  m_db->getTableUri(tmp, FileNum);
410
418
  *Value = ::SysAllocString(tmp);
411
- return S_OK;
419
+ return S_OK;
412
420
  }
413
421
 
414
422
  STDMETHODIMP CDatabase::get_IsOpened(VARIANT_BOOL* Value)
415
423
  {
416
- *Value = m_db->isOpened();
417
- return S_OK;
424
+ *Value = m_db->isOpened();
425
+ return S_OK;
418
426
  }
419
427
 
420
428
  STDMETHODIMP CDatabase::get_TableReadOnly(VARIANT_BOOL* Value)
421
429
  {
422
- *Value = m_db->tableReadOnly();
423
- return S_OK;
430
+ *Value = m_db->tableReadOnly();
431
+ return S_OK;
424
432
  }
425
433
 
426
434
  STDMETHODIMP CDatabase::put_TableReadOnly(VARIANT_BOOL Value)
427
435
  {
428
- m_db->setTableReadOnly(Value);
429
- return S_OK;
436
+ m_db->setTableReadOnly(Value);
437
+ return S_OK;
430
438
  }
431
439
 
432
- STDMETHODIMP CDatabase::SwapTablename(BSTR Uri1, BSTR Uri2)
440
+ STDMETHODIMP CDatabase::SwapTablename(BSTR Uri1, BSTR Uri2)
433
441
  {
434
- m_db->swapTablename(Uri1, Uri2);
435
- return S_OK;
436
-
442
+ m_db->swapTablename(Uri1, Uri2);
443
+ return S_OK;
437
444
  }
438
445
 
439
446
  STDMETHODIMP CDatabase::get_ClientID(short* Value)
440
447
  {
441
- *Value = (short)m_db->clientID();
442
- return S_OK;
448
+ *Value = (short)m_db->clientID();
449
+ return S_OK;
443
450
  }
444
451
 
445
452
  STDMETHODIMP CDatabase::get_RefCount(int* Value)
446
453
  {
447
- *Value = m_db->refCount();
448
- return S_OK;
454
+ *Value = m_db->refCount();
455
+ return S_OK;
449
456
  }
450
457
 
451
458
  STDMETHODIMP CDatabase::get_TrnsactionFlushWaitStatus(VARIANT_BOOL* Value)
452
459
  {
453
- *Value = database::trnsactionFlushWaitStatus();
454
- return S_OK;
460
+ *Value = database::trnsactionFlushWaitStatus();
461
+ return S_OK;
455
462
  }
456
463
 
457
464
  STDMETHODIMP CDatabase::put_ExecCodePage(unsigned int Value)
458
465
  {
459
- database::setExecCodePage(Value);
460
- return S_OK;
466
+ database::setExecCodePage(Value);
467
+ return S_OK;
461
468
  }
462
469
 
463
- STDMETHODIMP CDatabase::get_ExecCodePage(unsigned int* Value)
470
+ STDMETHODIMP CDatabase::get_ExecCodePage(unsigned int* Value)
464
471
  {
465
- *Value = database::execCodePage();
466
- return S_OK;
472
+ *Value = database::execCodePage();
473
+ return S_OK;
467
474
  }
468
475
 
469
- STDMETHODIMP CDatabase::get_MaxTables(int* Value)
476
+ STDMETHODIMP CDatabase::get_MaxTables(int* Value)
470
477
  {
471
- *Value = database::maxtables ;
472
- return S_OK;
478
+ *Value = database::maxtables;
479
+ return S_OK;
473
480
  }
474
481
 
475
-
476
-
477
- void __stdcall onCopyData(database *db, int recordCount, int count, bool &cancel)
482
+ void __stdcall onCopyData(database* db, int recordCount, int count,
483
+ bool& cancel)
478
484
  {
479
- CDatabase* cdb = reinterpret_cast<CDatabase*>(db->optionalData());
480
- IDatabase* dbPtr = dynamic_cast<IDatabase*>(cdb);
481
- _ASSERTE(dbPtr);
482
- VARIANT_BOOL tmp = 0;
483
- cdb->Fire_OnCopyData(dbPtr, recordCount, count, &tmp);
484
- if (tmp)
485
- cancel = true;
485
+ CDatabase* cdb = reinterpret_cast<CDatabase*>(db->optionalData());
486
+ IDatabase* dbPtr = dynamic_cast<IDatabase*>(cdb);
487
+ _ASSERTE(dbPtr);
488
+ VARIANT_BOOL tmp = 0;
489
+ cdb->Fire_OnCopyData(dbPtr, recordCount, count, &tmp);
490
+ if (tmp)
491
+ cancel = true;
486
492
  }
487
493
 
488
- bool __stdcall onDeleteRecord(database *db, table* tb, bool inkey)
494
+ bool __stdcall onDeleteRecord(database* db, table* tb, bool inkey)
489
495
  {
490
- CDatabase* cdb = reinterpret_cast<CDatabase*>(db->optionalData());
491
- IDatabase* dbPtr = dynamic_cast<IDatabase*>(cdb);
492
- _ASSERTE(dbPtr);
493
-
494
- CTableTd* ctb = reinterpret_cast<CTableTd*>(tb->optionalData());
495
- ITable* tbPtr = dynamic_cast<ITable*>(ctb);
496
- _ASSERTE(tbPtr);
497
-
498
- VARIANT_BOOL tmp = 0;
499
- cdb->Fire_OnDeleteRecord(dbPtr, tbPtr, &tmp);
500
- return (tmp != 0);
496
+ CDatabase* cdb = reinterpret_cast<CDatabase*>(db->optionalData());
497
+ IDatabase* dbPtr = dynamic_cast<IDatabase*>(cdb);
498
+ _ASSERTE(dbPtr);
501
499
 
502
- }
500
+ CTableTd* ctb = reinterpret_cast<CTableTd*>(tb->optionalData());
501
+ ITable* tbPtr = dynamic_cast<ITable*>(ctb);
502
+ _ASSERTE(tbPtr);
503
503
 
504
+ VARIANT_BOOL tmp = 0;
505
+ cdb->Fire_OnDeleteRecord(dbPtr, tbPtr, &tmp);
506
+ return (tmp != 0);
507
+ }
@@ -13,8 +13,8 @@
13
13
  GNU General Public License for more details.
14
14
 
15
15
  You should have received a copy of the GNU General Public License
16
- along with this program; if not, write to the Free Software
17
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
16
+ along with this program; if not, write to the Free Software
17
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18
18
  02111-1307, USA.
19
19
  =================================================================*/
20
20
  #include "resource.h"
@@ -22,62 +22,71 @@
22
22
  #include <bzs/db/protocol/tdap/client/database.h>
23
23
  #include "_IDatabaseEvents_CP.H"
24
24
 
25
-
26
-
27
25
  using namespace ATL;
28
26
 
29
27
  class CDbDef;
30
28
 
29
+ void __stdcall onCopyData(bzs::db::protocol::tdap::client::database* db,
30
+ int recordCount, int count, bool& cancel);
31
+ bool __stdcall onDeleteRecord(bzs::db::protocol::tdap::client::database* db,
32
+ bzs::db::protocol::tdap::client::table* tb,
33
+ bool inkey);
31
34
 
32
- void __stdcall onCopyData(bzs::db::protocol::tdap::client::database *db, int recordCount, int count, bool &cancel);
33
- bool __stdcall onDeleteRecord(bzs::db::protocol::tdap::client::database *db,
34
- bzs::db::protocol::tdap::client::table* tb, bool inkey);
35
+ class ATL_NO_VTABLE CDatabase
36
+ : public CComObjectRootEx<CComSingleThreadModel>,
37
+ public CComCoClass<CDatabase, &CLSID_Database>,
38
+ public IDispatchImpl<IDatabase, &IID_IDatabase, &LIBID_transactd,
39
+ /* wMajor = */ 1, /* wMinor = */ 0>,
40
+ public IConnectionPointContainerImpl<CDatabase>,
41
+ public CProxy_IDatabaseEvents<CDatabase>
35
42
 
36
-
37
- class ATL_NO_VTABLE CDatabase :
38
- public CComObjectRootEx<CComSingleThreadModel>,
39
- public CComCoClass<CDatabase, &CLSID_Database>,
40
- public IDispatchImpl<IDatabase, &IID_IDatabase, &LIBID_transactd, /* wMajor = */ 1, /* wMinor = */ 0>,
41
- public IConnectionPointContainerImpl<CDatabase>,
42
- public CProxy_IDatabaseEvents<CDatabase>
43
-
44
43
  {
45
44
  bzs::db::protocol::tdap::client::database* m_db;
46
45
  bool m_IsAtatchOK;
46
+ bool m_needRelese;
47
47
 
48
48
  public:
49
- CDatabase()
49
+ CDatabase() : m_needRelese(true), m_IsAtatchOK(true)
50
50
  {
51
51
  m_db = bzs::db::protocol::tdap::client::database::create();
52
- m_IsAtatchOK = true;
53
- m_db->setOptionalData(this);
54
- m_db->setOnCopyData(onCopyData);
55
- m_db->setOnDeleteRecord(onDeleteRecord);
52
+ m_db->setOptionalData(this);
53
+ m_db->setOnCopyData(onCopyData);
54
+ m_db->setOnDeleteRecord(onDeleteRecord);
56
55
  }
57
56
 
58
- DECLARE_REGISTRY_RESOURCEID(IDR_DATABASE)
57
+ DECLARE_REGISTRY_RESOURCEID(IDR_DATABASE)
59
58
 
60
- BEGIN_COM_MAP(CDatabase)
61
- COM_INTERFACE_ENTRY(IDatabase)
62
- COM_INTERFACE_ENTRY(IDispatch)
63
- COM_INTERFACE_ENTRY(IConnectionPointContainer)
64
- END_COM_MAP()
59
+ BEGIN_COM_MAP(CDatabase)
60
+ COM_INTERFACE_ENTRY(IDatabase)
61
+ COM_INTERFACE_ENTRY(IDispatch)
62
+ COM_INTERFACE_ENTRY(IConnectionPointContainer)
63
+ END_COM_MAP()
65
64
 
66
- BEGIN_CONNECTION_POINT_MAP(CDatabase)
67
- CONNECTION_POINT_ENTRY(__uuidof(_IDatabaseEvents))
68
- END_CONNECTION_POINT_MAP()
65
+ BEGIN_CONNECTION_POINT_MAP(CDatabase)
66
+ CONNECTION_POINT_ENTRY(__uuidof(_IDatabaseEvents))
67
+ END_CONNECTION_POINT_MAP()
69
68
 
70
- DECLARE_PROTECT_FINAL_CONSTRUCT()
69
+ DECLARE_PROTECT_FINAL_CONSTRUCT()
71
70
 
72
- HRESULT FinalConstruct() {return S_OK;}
71
+ HRESULT FinalConstruct() { return S_OK; }
72
+
73
+ void FinalRelease()
74
+ {
75
+ if (m_needRelese && m_db)
76
+ m_db->release();
77
+ };
73
78
 
74
- void FinalRelease(){if (m_db) m_db->release();};
75
79
  public:
80
+ bzs::db::protocol::tdap::client::database* database() { return m_db; };
76
81
 
77
- STDMETHOD(Open)(BSTR Uri, eSchemaType SchemaType, eOpenMode Mode, BSTR Dir, BSTR Ownername, VARIANT_BOOL* Param6);
82
+ STDMETHOD(Open)(BSTR Uri, eSchemaType SchemaType, eOpenMode Mode, BSTR Dir,
83
+ BSTR Ownername, VARIANT_BOOL* Param6);
78
84
  STDMETHOD(get_DbDef)(IDbDef** Value);
79
- STDMETHOD(OpenTable)(VARIANT TableID, eOpenMode Mode, VARIANT_BOOL AutoCreate, BSTR OwnerName, BSTR Uri, ITable** ret);
80
- STDMETHOD(AtatchDatabase)(__int64* nativeDatabase);
85
+ STDMETHOD(OpenTable)(VARIANT TableID, eOpenMode Mode,
86
+ VARIANT_BOOL AutoCreate, BSTR OwnerName, BSTR Uri,
87
+ ITable** ret);
88
+ STDMETHOD(AtatchDatabase)(__int64* nativeDatabase,
89
+ VARIANT_BOOL noRelease = 0);
81
90
  STDMETHOD(get_RootDir)(BSTR* Value);
82
91
  STDMETHOD(put_RootDir)(BSTR Value);
83
92
  STDMETHOD(get_Stat)(eStatus* Value);
@@ -92,7 +101,8 @@ public:
92
101
  STDMETHOD(DropTable)(BSTR TableName);
93
102
  STDMETHOD(Create)(BSTR URI, int type);
94
103
  STDMETHOD(Close)();
95
- STDMETHOD(Connect)(BSTR URI, VARIANT_BOOL newConnection, VARIANT_BOOL* Value);
104
+ STDMETHOD(Connect)(BSTR URI, VARIANT_BOOL newConnection,
105
+ VARIANT_BOOL* Value);
96
106
  STDMETHOD(Disconnect)(BSTR URI, VARIANT_BOOL* Param2);
97
107
  STDMETHOD(get_EnableTrn)(VARIANT_BOOL* Value);
98
108
  STDMETHOD(GetBtrVersion)(int index, ITdVersion** ver);
@@ -115,25 +125,26 @@ public:
115
125
  STDMETHOD(TdapErr)(OLE_HANDLE hWnd, BSTR* Value);
116
126
  STDMETHOD(Clone)(IDatabase** Value);
117
127
  STDMETHOD(AssignSchemaData)(IDbDef* Src, short* Value);
118
- STDMETHOD(Continuous)(eContinusOpr Op, VARIANT_BOOL inclideRepfile, eContinusStatus* Value);
119
- STDMETHOD(ConvertTable)(short TableIndex, VARIANT_BOOL Turbo, BSTR OwnerName);
120
- STDMETHOD(CopyTableData)(ITable* Dest, ITable* Src, VARIANT_BOOL Turbo, int Offset, short KeyNum, int MaxSkip, short* Value);
128
+ STDMETHOD(Continuous)(eContinusOpr Op, VARIANT_BOOL inclideRepfile,
129
+ eContinusStatus* Value);
130
+ STDMETHOD(ConvertTable)(short TableIndex, VARIANT_BOOL Turbo,
131
+ BSTR OwnerName);
132
+ STDMETHOD(CopyTableData)(ITable* Dest, ITable* Src, VARIANT_BOOL Turbo,
133
+ int Offset, short KeyNum, int MaxSkip,
134
+ short* Value);
121
135
  STDMETHOD(CreateTable)(short FileNum, BSTR Uri, VARIANT_BOOL* Value);
122
136
  STDMETHOD(ExistsTableFile)(short TableIndex, BSTR OwnerName);
123
137
  STDMETHOD(GetTableUri)(short FileNum, BSTR* Value);
124
138
  STDMETHOD(get_IsOpened)(VARIANT_BOOL* Value);
125
139
  STDMETHOD(get_TableReadOnly)(VARIANT_BOOL* Value);
126
140
  STDMETHOD(put_TableReadOnly)(VARIANT_BOOL Value);
127
- STDMETHOD(SwapTablename)(BSTR Uri1, BSTR Uri2);
128
- STDMETHOD(get_ClientID)(short* Value);
129
- STDMETHOD(get_RefCount)(int* Value);
130
- STDMETHOD(get_TrnsactionFlushWaitStatus)(VARIANT_BOOL* Value);
131
- STDMETHOD(put_ExecCodePage)(unsigned int Value);
132
- STDMETHOD(get_ExecCodePage)(unsigned int* Value);
133
- STDMETHOD(get_MaxTables)( int* Value);
134
-
135
-
136
-
141
+ STDMETHOD(SwapTablename)(BSTR Uri1, BSTR Uri2);
142
+ STDMETHOD(get_ClientID)(short* Value);
143
+ STDMETHOD(get_RefCount)(int* Value);
144
+ STDMETHOD(get_TrnsactionFlushWaitStatus)(VARIANT_BOOL* Value);
145
+ STDMETHOD(put_ExecCodePage)(unsigned int Value);
146
+ STDMETHOD(get_ExecCodePage)(unsigned int* Value);
147
+ STDMETHOD(get_MaxTables)(int* Value);
137
148
  };
138
149
 
139
150
  OBJECT_ENTRY_AUTO(__uuidof(Database), CDatabase)