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.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +46 -67
- data/BUILD_WIN-JA +106 -63
- data/CMakeLists.txt +40 -15
- data/README +219 -75
- data/README-JA +207 -76
- data/README_ORMSRCGEN +118 -0
- data/README_ORMSRCGEN-JA +115 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclc_64_2_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +18 -14
- data/build/common/create_symlink.cmake.in +25 -0
- data/build/common/get_boost_libs.cmake +23 -23
- data/build/common/options.cmake +0 -66
- data/build/common/smart_install.cmake +3 -3
- data/build/common/transactd.rc.in +15 -5
- data/build/common/transactd_cl_common.cmake +37 -18
- data/build/common/transactd_cl_output.cmake +55 -13
- data/build/common/transactd_common.cmake +108 -31
- data/build/swig/php/generate.cmake.in +15 -17
- data/build/swig/php/generate.cmd.in +15 -9
- data/build/swig/php/php.swg +124 -82
- data/build/swig/php/transactd.no_yield.php +4494 -0
- data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
- data/build/swig/php/transactd.no_yield.php.patch +685 -0
- data/build/swig/php/transactd.yield.php +4461 -0
- data/build/swig/php/transactd.yield.php.git.patch +652 -0
- data/build/swig/php/transactd.yield.php.patch +652 -0
- data/build/swig/referencecounter.h +79 -0
- data/build/swig/ruby/ruby.swg +226 -76
- data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
- data/build/swig/ruby/without_gvl.swg +87 -0
- data/build/swig/tdcl.i +659 -170
- data/build/swig/validatablepointer.h +91 -0
- data/build/tdclc/CMakeLists.txt +49 -34
- data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
- data/build/tdclc/tdclc.rc +0 -0
- data/build/tdclcpp/CMakeLists.txt +84 -20
- data/build/tdclcpp/tdclcpp.rc +0 -0
- data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
- data/build/tdclrb/CMakeLists.txt +84 -66
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/build/tdclrb/gem_output.cmake +20 -16
- data/index_ja.html +15 -0
- data/source/bzs/db/IBlobBuffer.h +15 -17
- data/source/bzs/db/blobBuffer.h +186 -140
- data/source/bzs/db/blobStructs.h +37 -37
- data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
- data/source/bzs/db/engine/mysql/bookmark.h +150 -147
- data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
- data/source/bzs/db/engine/mysql/database.h +608 -370
- data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
- data/source/bzs/db/engine/mysql/dbManager.h +115 -104
- data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
- data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
- data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
- data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
- data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
- data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
- data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
- data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
- data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
- data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
- data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
- data/source/bzs/db/protocol/tdap/client/client.h +361 -320
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
- data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
- data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
- data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
- data/source/bzs/db/protocol/tdap/client/database.h +141 -118
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
- data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
- data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
- data/source/bzs/db/protocol/tdap/client/export.h +35 -0
- data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
- data/source/bzs/db/protocol/tdap/client/field.h +393 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
- data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
- data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
- data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
- data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
- data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
- data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
- data/source/bzs/db/protocol/tdap/client/request.h +227 -170
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
- data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
- data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
- data/source/bzs/db/protocol/tdap/client/table.h +413 -87
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
- data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
- data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
- data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
- data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
- data/source/bzs/db/transactd/appBuilderImple.h +21 -20
- data/source/bzs/db/transactd/appModule.cpp +350 -98
- data/source/bzs/db/transactd/appModule.h +31 -37
- data/source/bzs/db/transactd/connManager.cpp +138 -135
- data/source/bzs/db/transactd/connManager.h +28 -21
- data/source/bzs/db/transactd/connectionRecord.h +39 -39
- data/source/bzs/db/transactd/transactd.cpp +217 -203
- data/source/bzs/env/boost_bcb_link.h +131 -0
- data/source/bzs/env/compiler.h +136 -79
- data/source/bzs/env/crosscompile.cpp +57 -57
- data/source/bzs/env/crosscompile.h +130 -115
- data/source/bzs/env/fileopen.h +7 -8
- data/source/bzs/env/mbcswchrLinux.cpp +4 -9
- data/source/bzs/env/mbcswchrLinux.h +37 -34
- data/source/bzs/env/tcharMinGW.h +59 -0
- data/source/bzs/env/tstring.h +90 -95
- data/source/bzs/example/changeSchema.cpp +22 -23
- data/source/bzs/example/changeSchema_c.cpp +22 -24
- data/source/bzs/example/connection_pool_c.cpp +49 -104
- data/source/bzs/example/createDatabase.cpp +40 -47
- data/source/bzs/example/createDatabase_c.cpp +38 -43
- data/source/bzs/example/deleteRecords.cpp +10 -15
- data/source/bzs/example/deleteRecords_c.cpp +10 -14
- data/source/bzs/example/dropDatabase.cpp +3 -9
- data/source/bzs/example/dropDatabase_c.cpp +5 -6
- data/source/bzs/example/insertRecords.cpp +37 -29
- data/source/bzs/example/insertRecords_c.cpp +19 -25
- data/source/bzs/example/ormap_c.cpp +621 -0
- data/source/bzs/example/queryData.cpp +371 -0
- data/source/bzs/example/queryData.h +16 -0
- data/source/bzs/example/query_c.cpp +109 -0
- data/source/bzs/example/readRecords.cpp +27 -27
- data/source/bzs/example/readRecords_c.cpp +25 -23
- data/source/bzs/example/updateRecords.cpp +16 -21
- data/source/bzs/example/updateRecords_c.cpp +8 -12
- data/source/bzs/example/update_with_transaction.cpp +21 -24
- data/source/bzs/example/update_with_transaction_c.cpp +12 -15
- data/source/bzs/example/useORMRecord.cpp +177 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
- data/source/bzs/netsvc/client/tcpClient.h +541 -489
- data/source/bzs/netsvc/server/IAppModule.h +119 -32
- data/source/bzs/netsvc/server/iserver.h +21 -23
- data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
- data/source/bzs/netsvc/server/serverCpt.h +41 -43
- data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
- data/source/bzs/netsvc/server/serverPipe.h +44 -45
- data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
- data/source/bzs/netsvc/server/serverTpool.h +38 -43
- data/source/bzs/rtl/benchmark.cpp +91 -31
- data/source/bzs/rtl/benchmark.h +76 -22
- data/source/bzs/rtl/datetime.cpp +231 -233
- data/source/bzs/rtl/datetime.h +16 -16
- data/source/bzs/rtl/debuglog.cpp +48 -51
- data/source/bzs/rtl/debuglog.h +55 -44
- data/source/bzs/rtl/exception.h +55 -48
- data/source/bzs/rtl/stl_uty.cpp +27 -28
- data/source/bzs/rtl/stl_uty.h +28 -29
- data/source/bzs/rtl/stringBuffers.cpp +8 -6
- data/source/bzs/rtl/stringBuffers.h +16 -9
- data/source/bzs/rtl/strtrim.cpp +90 -91
- data/source/bzs/rtl/strtrim.h +14 -16
- data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
- data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
- data/source/bzs/test/tdclphp/bench.php +357 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
- data/source/bzs/test/tdclrb/prepare.rb +15 -12
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
- data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
- data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
- data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
- data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
- data/source/bzs/test/transactdBench/workerBase.h +88 -0
- data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
- data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
- data/source/global/ormsrcgen/confParam.h +80 -0
- data/source/global/ormsrcgen/fieldName.cpp +77 -0
- data/source/global/ormsrcgen/fieldName.h +43 -0
- data/source/global/ormsrcgen/main.cpp +196 -0
- data/source/global/ormsrcgen/srcgen.cpp +763 -0
- data/source/global/ormsrcgen/srcgen.h +72 -0
- data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
- data/source/global/ormsrcgen/template/template.cnf +38 -0
- data/source/global/querystmts/querystmts.cpp +237 -0
- data/source/global/tdclatl/ConnectParams.cpp +77 -0
- data/source/global/tdclatl/ConnectParams.h +70 -0
- data/source/global/tdclatl/Database.cpp +132 -128
- data/source/global/tdclatl/Database.h +60 -49
- data/source/global/tdclatl/DbDef.cpp +68 -64
- data/source/global/tdclatl/DbDef.h +36 -36
- data/source/global/tdclatl/Field.cpp +12 -17
- data/source/global/tdclatl/Field.h +15 -12
- data/source/global/tdclatl/FieldDef.cpp +75 -36
- data/source/global/tdclatl/FieldDef.h +38 -19
- data/source/global/tdclatl/FieldDefs.cpp +74 -0
- data/source/global/tdclatl/FieldDefs.h +56 -0
- data/source/global/tdclatl/FieldNames.cpp +99 -0
- data/source/global/tdclatl/FieldNames.h +66 -0
- data/source/global/tdclatl/Flags.cpp +75 -37
- data/source/global/tdclatl/Flags.h +13 -12
- data/source/global/tdclatl/GroupQuery.cpp +119 -0
- data/source/global/tdclatl/GroupQuery.h +65 -0
- data/source/global/tdclatl/KeyDef.cpp +15 -14
- data/source/global/tdclatl/KeyDef.h +20 -17
- data/source/global/tdclatl/KeySegment.cpp +13 -12
- data/source/global/tdclatl/PooledDbManager.cpp +223 -0
- data/source/global/tdclatl/PooledDbManager.h +76 -0
- data/source/global/tdclatl/QueryBase.cpp +206 -127
- data/source/global/tdclatl/QueryBase.h +55 -59
- data/source/global/tdclatl/Record.cpp +214 -0
- data/source/global/tdclatl/Record.h +96 -0
- data/source/global/tdclatl/Recordset.cpp +278 -0
- data/source/global/tdclatl/Recordset.h +83 -0
- data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
- data/source/global/tdclatl/RecordsetQuery.h +126 -0
- data/source/global/tdclatl/Table.cpp +57 -60
- data/source/global/tdclatl/Table.h +32 -29
- data/source/global/tdclatl/TableDef.cpp +63 -62
- data/source/global/tdclatl/TableDef.h +20 -22
- data/source/global/tdclatl/TdVersion.cpp +3 -3
- data/source/global/tdclatl/TdVersion.h +15 -11
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
- data/source/global/tdclatl/activeTable.cpp +355 -0
- data/source/global/tdclatl/activeTable.h +79 -0
- data/source/global/tdclatl/dllmain.cpp +4 -3
- data/source/global/tdclatl/dllmain.h +7 -6
- data/source/global/tdclatl/keySegment.h +22 -18
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.h +6 -4
- data/source/global/tdclatl/targetver.h +0 -1
- data/source/global/tdclatl/tdclatl.cpp +10 -5
- data/source/global/tdclatl/tdclatl.idl +530 -14
- data/source/linux/charsetConvert.h +78 -79
- data/source/linux/linuxTypes.h +9 -12
- data/source/linux/tchar.h +168 -166
- data/transactd.gemspec +24 -16
- metadata +98 -12
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/tdclc/tdclc_32.cbproj +0 -173
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
- data/build/tdclrb/GEM_VERSION +0 -3
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
- 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,
|
|
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
|
-
|
|
44
|
+
dbDefObj->m_dbDef = m_db->dbDef();
|
|
44
45
|
m_IsAtatchOK = false;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
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,
|
|
57
|
-
|
|
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
|
-
|
|
65
|
-
|
|
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
|
-
|
|
70
|
+
tb = m_db->openTable(TableID.iVal, Mode, (bool)AutoCreate, OwnerName,
|
|
71
|
+
Uri);
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
|
|
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
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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*>(
|
|
101
|
+
reinterpret_cast<bzs::db::protocol::tdap::client::database*>(
|
|
102
|
+
nativeDatabase);
|
|
98
103
|
if (nativePtr)
|
|
99
104
|
{
|
|
100
|
-
|
|
101
|
-
|
|
105
|
+
if (m_needRelese)
|
|
106
|
+
{
|
|
107
|
+
Close();
|
|
108
|
+
m_db->release();
|
|
109
|
+
}
|
|
110
|
+
m_needRelese = (noRelease == 0);
|
|
102
111
|
m_db = nativePtr;
|
|
103
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
229
|
+
CComObject<CTdVersion>* ptb;
|
|
222
230
|
CComObject<CTdVersion>::CreateInstance(&ptb);
|
|
223
|
-
ptb->m_ver = vers.versions[index]; //not refarence. no need the this life
|
|
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
|
-
|
|
349
|
+
CComObject<CDatabase>* ptb;
|
|
346
350
|
CComObject<CDatabase>::CreateInstance(&ptb);
|
|
347
|
-
|
|
348
|
-
if (ret==S_OK)
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
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
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
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,
|
|
372
|
+
STDMETHODIMP CDatabase::Continuous(eContinusOpr Op, VARIANT_BOOL inclideRepfile,
|
|
373
|
+
eContinusStatus* Value)
|
|
369
374
|
{
|
|
370
|
-
|
|
371
|
-
|
|
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,
|
|
379
|
+
STDMETHODIMP CDatabase::ConvertTable(short TableIndex, VARIANT_BOOL Turbo,
|
|
380
|
+
BSTR OwnerName)
|
|
375
381
|
{
|
|
376
|
-
|
|
377
|
-
|
|
382
|
+
m_db->convertTable(TableIndex, Turbo, OwnerName);
|
|
383
|
+
return S_OK;
|
|
378
384
|
}
|
|
379
385
|
|
|
380
|
-
STDMETHODIMP CDatabase::CopyTableData(ITable* Dest, ITable* Src,
|
|
381
|
-
|
|
386
|
+
STDMETHODIMP CDatabase::CopyTableData(ITable* Dest, ITable* Src,
|
|
387
|
+
VARIANT_BOOL Turbo, int Offset,
|
|
388
|
+
short KeyNum, int MaxSkip, short* Value)
|
|
382
389
|
{
|
|
383
|
-
|
|
384
|
-
|
|
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
|
-
|
|
390
|
-
|
|
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,
|
|
401
|
+
STDMETHODIMP CDatabase::CreateTable(short FileNum, BSTR Uri,
|
|
402
|
+
VARIANT_BOOL* Value)
|
|
394
403
|
{
|
|
395
|
-
|
|
396
|
-
|
|
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
|
-
|
|
402
|
-
|
|
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
|
-
|
|
416
|
+
wchar_t tmp[MAX_PATH] = { NULL };
|
|
409
417
|
m_db->getTableUri(tmp, FileNum);
|
|
410
418
|
*Value = ::SysAllocString(tmp);
|
|
411
|
-
|
|
419
|
+
return S_OK;
|
|
412
420
|
}
|
|
413
421
|
|
|
414
422
|
STDMETHODIMP CDatabase::get_IsOpened(VARIANT_BOOL* Value)
|
|
415
423
|
{
|
|
416
|
-
|
|
417
|
-
|
|
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
|
-
|
|
423
|
-
|
|
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
|
-
|
|
429
|
-
|
|
436
|
+
m_db->setTableReadOnly(Value);
|
|
437
|
+
return S_OK;
|
|
430
438
|
}
|
|
431
439
|
|
|
432
|
-
STDMETHODIMP CDatabase::SwapTablename(BSTR Uri1,
|
|
440
|
+
STDMETHODIMP CDatabase::SwapTablename(BSTR Uri1, BSTR Uri2)
|
|
433
441
|
{
|
|
434
|
-
|
|
435
|
-
|
|
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
|
-
|
|
442
|
-
|
|
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
|
-
|
|
448
|
-
|
|
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
|
-
|
|
454
|
-
|
|
460
|
+
*Value = database::trnsactionFlushWaitStatus();
|
|
461
|
+
return S_OK;
|
|
455
462
|
}
|
|
456
463
|
|
|
457
464
|
STDMETHODIMP CDatabase::put_ExecCodePage(unsigned int Value)
|
|
458
465
|
{
|
|
459
|
-
|
|
460
|
-
|
|
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
|
-
|
|
466
|
-
|
|
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
|
-
|
|
472
|
-
|
|
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
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
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
|
|
494
|
+
bool __stdcall onDeleteRecord(database* db, table* tb, bool inkey)
|
|
489
495
|
{
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
57
|
+
DECLARE_REGISTRY_RESOURCEID(IDR_DATABASE)
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
BEGIN_CONNECTION_POINT_MAP(CDatabase)
|
|
66
|
+
CONNECTION_POINT_ENTRY(__uuidof(_IDatabaseEvents))
|
|
67
|
+
END_CONNECTION_POINT_MAP()
|
|
69
68
|
|
|
70
|
-
|
|
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,
|
|
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,
|
|
80
|
-
|
|
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,
|
|
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,
|
|
119
|
-
|
|
120
|
-
STDMETHOD(
|
|
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,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
STDMETHOD(get_ExecCodePage)(unsigned int* Value);
|
|
133
|
-
STDMETHOD(get_MaxTables)(
|
|
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)
|