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
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
/*=================================================================
|
|
2
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
3
|
+
|
|
4
|
+
This program is free software; you can redistribute it and/or
|
|
5
|
+
modify it under the terms of the GNU General Public License
|
|
6
|
+
as published by the Free Software Foundation; either version 2
|
|
7
|
+
of the License, or (at your option) any later version.
|
|
8
|
+
|
|
9
|
+
This program is distributed in the hope that it will be useful,
|
|
10
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
GNU General Public License for more details.
|
|
13
|
+
|
|
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
|
|
17
|
+
02111-1307, USA.
|
|
18
|
+
=================================================================*/
|
|
19
|
+
#include "stdafx.h"
|
|
20
|
+
#include "activeTable.h"
|
|
21
|
+
#include "Database.h"
|
|
22
|
+
#include "QueryBase.h"
|
|
23
|
+
#include "Recordset.h"
|
|
24
|
+
#include "Record.h"
|
|
25
|
+
#include "TableDef.h"
|
|
26
|
+
#include "PooledDbManager.h"
|
|
27
|
+
|
|
28
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
29
|
+
using namespace bzs::db::protocol::tdap;
|
|
30
|
+
|
|
31
|
+
void CActiveTable::setResult(IActiveTable** retVal)
|
|
32
|
+
{
|
|
33
|
+
this->QueryInterface(IID_IActiveTable, (void**)retVal);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
void CActiveTable::FinalRelease()
|
|
37
|
+
{
|
|
38
|
+
if (m_recObj)
|
|
39
|
+
m_recObj->Release();
|
|
40
|
+
delete m_at;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
STDMETHODIMP CActiveTable::SetDatabase(VARIANT Value, BSTR tableName)
|
|
44
|
+
{
|
|
45
|
+
try
|
|
46
|
+
{
|
|
47
|
+
if (Value.vt != VT_DISPATCH)
|
|
48
|
+
return Error(_T("SetDatabase Type error"), IID_IActiveTable);
|
|
49
|
+
CPooledDbManager* pm = dynamic_cast<CPooledDbManager*>(Value.pdispVal);
|
|
50
|
+
if (pm)
|
|
51
|
+
{
|
|
52
|
+
m_at = new activeTable(&pm->m_mgr, tableName);
|
|
53
|
+
m_at->table()->setOptionalData((void*)NULL);
|
|
54
|
+
return S_OK;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
CDatabase* p = dynamic_cast<CDatabase*>(Value.pdispVal);
|
|
58
|
+
if (p)
|
|
59
|
+
{
|
|
60
|
+
m_at = new activeTable(p->database(), tableName);
|
|
61
|
+
m_at->table()->setOptionalData((void*)p->database());
|
|
62
|
+
return S_OK;
|
|
63
|
+
}
|
|
64
|
+
return Error(_T("SetDatabase Type error"), IID_IActiveTable);
|
|
65
|
+
}
|
|
66
|
+
catch (bzs::rtl::exception& e)
|
|
67
|
+
{
|
|
68
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
STDMETHODIMP CActiveTable::Index(short Value, IActiveTable** retVal)
|
|
73
|
+
{
|
|
74
|
+
m_at->index(Value);
|
|
75
|
+
setResult(retVal);
|
|
76
|
+
return S_OK;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
STDMETHODIMP CActiveTable::KeyValue(VARIANT Value0, VARIANT Value1,
|
|
80
|
+
VARIANT Value2, VARIANT Value3,
|
|
81
|
+
VARIANT Value4, VARIANT Value5,
|
|
82
|
+
VARIANT Value6, VARIANT Value7,
|
|
83
|
+
IActiveTable** retVal)
|
|
84
|
+
{
|
|
85
|
+
|
|
86
|
+
if (Value0.vt != VT_BSTR)
|
|
87
|
+
VariantChangeType(&Value0, &Value0, 0, VT_BSTR);
|
|
88
|
+
|
|
89
|
+
if (Value1.vt != VT_BSTR)
|
|
90
|
+
VariantChangeType(&Value1, &Value1, 0, VT_BSTR);
|
|
91
|
+
if (!Value1.bstrVal || !Value1.bstrVal[0])
|
|
92
|
+
{
|
|
93
|
+
m_at->keyValue(Value0.bstrVal);
|
|
94
|
+
setResult(retVal);
|
|
95
|
+
return S_OK;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (Value2.vt != VT_BSTR)
|
|
99
|
+
VariantChangeType(&Value2, &Value2, 0, VT_BSTR);
|
|
100
|
+
if (!Value2.bstrVal || !Value2.bstrVal[0])
|
|
101
|
+
{
|
|
102
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal);
|
|
103
|
+
setResult(retVal);
|
|
104
|
+
return S_OK;
|
|
105
|
+
}
|
|
106
|
+
if (Value3.vt != VT_BSTR)
|
|
107
|
+
VariantChangeType(&Value3, &Value3, 0, VT_BSTR);
|
|
108
|
+
if (!Value3.bstrVal || !Value3.bstrVal[0])
|
|
109
|
+
{
|
|
110
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal);
|
|
111
|
+
setResult(retVal);
|
|
112
|
+
return S_OK;
|
|
113
|
+
}
|
|
114
|
+
if (Value4.vt != VT_BSTR)
|
|
115
|
+
VariantChangeType(&Value4, &Value4, 0, VT_BSTR);
|
|
116
|
+
if (!Value4.bstrVal || !Value4.bstrVal[0])
|
|
117
|
+
{
|
|
118
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
|
119
|
+
Value3.bstrVal);
|
|
120
|
+
setResult(retVal);
|
|
121
|
+
return S_OK;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (Value5.vt != VT_BSTR)
|
|
125
|
+
VariantChangeType(&Value5, &Value5, 0, VT_BSTR);
|
|
126
|
+
if (!Value5.bstrVal || !Value5.bstrVal[0])
|
|
127
|
+
{
|
|
128
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
|
129
|
+
Value3.bstrVal, Value4.bstrVal);
|
|
130
|
+
setResult(retVal);
|
|
131
|
+
return S_OK;
|
|
132
|
+
}
|
|
133
|
+
if (Value6.vt != VT_BSTR)
|
|
134
|
+
VariantChangeType(&Value6, &Value6, 0, VT_BSTR);
|
|
135
|
+
if (!Value6.bstrVal || !Value6.bstrVal[0])
|
|
136
|
+
{
|
|
137
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
|
138
|
+
Value3.bstrVal, Value4.bstrVal, Value5.bstrVal);
|
|
139
|
+
setResult(retVal);
|
|
140
|
+
return S_OK;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (Value7.vt != VT_BSTR)
|
|
144
|
+
VariantChangeType(&Value7, &Value7, 0, VT_BSTR);
|
|
145
|
+
if (!Value7.bstrVal || !Value7.bstrVal[0])
|
|
146
|
+
{
|
|
147
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
|
148
|
+
Value3.bstrVal, Value4.bstrVal, Value5.bstrVal,
|
|
149
|
+
Value6.bstrVal);
|
|
150
|
+
setResult(retVal);
|
|
151
|
+
return S_OK;
|
|
152
|
+
}
|
|
153
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
|
154
|
+
Value3.bstrVal, Value4.bstrVal, Value5.bstrVal,
|
|
155
|
+
Value6.bstrVal, Value7.bstrVal);
|
|
156
|
+
setResult(retVal);
|
|
157
|
+
return S_OK;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
STDMETHODIMP CActiveTable::Option(int Value, IActiveTable** retVal)
|
|
161
|
+
{
|
|
162
|
+
m_at->option(Value);
|
|
163
|
+
setResult(retVal);
|
|
164
|
+
return S_OK;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
STDMETHODIMP CActiveTable::Read(VARIANT /*IQueryBase**/ query,
|
|
168
|
+
IRecordset** retVal)
|
|
169
|
+
{
|
|
170
|
+
|
|
171
|
+
CComObject<CARecordset>* rsObj;
|
|
172
|
+
CComObject<CARecordset>::CreateInstance(&rsObj);
|
|
173
|
+
|
|
174
|
+
if (rsObj)
|
|
175
|
+
{
|
|
176
|
+
IRecordset* rs;
|
|
177
|
+
rsObj->QueryInterface(IID_IRecordset, (void**)&rs);
|
|
178
|
+
_ASSERTE(rs);
|
|
179
|
+
*retVal = rs;
|
|
180
|
+
}
|
|
181
|
+
else
|
|
182
|
+
{
|
|
183
|
+
*retVal = 0;
|
|
184
|
+
return S_OK;
|
|
185
|
+
}
|
|
186
|
+
try
|
|
187
|
+
{
|
|
188
|
+
if (query.vt != VT_ERROR)
|
|
189
|
+
{
|
|
190
|
+
CQueryBase* p = dynamic_cast<CQueryBase*>(query.pdispVal);
|
|
191
|
+
if (p)
|
|
192
|
+
m_at->read(*rsObj->m_rs, p->query());
|
|
193
|
+
}
|
|
194
|
+
else
|
|
195
|
+
{
|
|
196
|
+
queryBase q;
|
|
197
|
+
q.reject(1).limit(1);
|
|
198
|
+
m_at->read(*rsObj->m_rs, q);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
return S_OK;
|
|
202
|
+
}
|
|
203
|
+
catch (bzs::rtl::exception& e)
|
|
204
|
+
{
|
|
205
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
STDMETHODIMP CActiveTable::Alias(BSTR Src, BSTR Dst, IActiveTable** retVal)
|
|
210
|
+
{
|
|
211
|
+
m_at->alias(Src, Dst);
|
|
212
|
+
setResult(retVal);
|
|
213
|
+
return S_OK;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
STDMETHODIMP CActiveTable::ResetAlias(IActiveTable** retVal)
|
|
217
|
+
{
|
|
218
|
+
m_at->resetAlias();
|
|
219
|
+
setResult(retVal);
|
|
220
|
+
return S_OK;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
STDMETHODIMP CActiveTable::Join(IRecordset* rs, IQueryBase* query, BSTR Name0,
|
|
224
|
+
BSTR Name1, BSTR Name2, BSTR Name3, BSTR Name4,
|
|
225
|
+
BSTR Name5, BSTR Name6, BSTR Name7,
|
|
226
|
+
IRecordset** retVal)
|
|
227
|
+
{
|
|
228
|
+
try
|
|
229
|
+
{
|
|
230
|
+
if (query)
|
|
231
|
+
{
|
|
232
|
+
CARecordset* p = dynamic_cast<CARecordset*>(rs);
|
|
233
|
+
p->AddRef();
|
|
234
|
+
p->QueryInterface(IID_IRecordset, (void**)retVal);
|
|
235
|
+
CQueryBase* qb = dynamic_cast<CQueryBase*>(query);
|
|
236
|
+
queryBase* q = &qb->query();
|
|
237
|
+
if (p && q)
|
|
238
|
+
{
|
|
239
|
+
if (!Name1 || !Name1[0])
|
|
240
|
+
m_at->join(*p->m_rs, *q, Name0);
|
|
241
|
+
else if (!Name2 || !Name2[0])
|
|
242
|
+
m_at->join(*p->m_rs, *q, Name0, Name1);
|
|
243
|
+
else if (!Name3 || !Name3[0])
|
|
244
|
+
m_at->join(*p->m_rs, *q, Name0, Name1, Name2);
|
|
245
|
+
else if (!Name4 || !Name4[0])
|
|
246
|
+
m_at->join(*p->m_rs, *q, Name0, Name1, Name2, Name3);
|
|
247
|
+
else if (!Name5 || !Name5[0])
|
|
248
|
+
m_at->join(*p->m_rs, *q, Name0, Name1, Name2, Name3, Name4);
|
|
249
|
+
else if (!Name6 || !Name6[0])
|
|
250
|
+
m_at->join(*p->m_rs, *q, Name0, Name1, Name2, Name3, Name4,
|
|
251
|
+
Name5);
|
|
252
|
+
else if (!Name7 || !Name7[0])
|
|
253
|
+
m_at->join(*p->m_rs, *q, Name0, Name1, Name2, Name3, Name4,
|
|
254
|
+
Name5, Name6);
|
|
255
|
+
else
|
|
256
|
+
m_at->join(*p->m_rs, *q, Name0, Name1, Name2, Name3, Name4,
|
|
257
|
+
Name5, Name6, Name7);
|
|
258
|
+
}
|
|
259
|
+
p->Release();
|
|
260
|
+
}
|
|
261
|
+
return S_OK;
|
|
262
|
+
}
|
|
263
|
+
catch (bzs::rtl::exception& e)
|
|
264
|
+
{
|
|
265
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
STDMETHODIMP CActiveTable::OuterJoin(IRecordset* rs, IQueryBase* query,
|
|
270
|
+
BSTR Name0, BSTR Name1, BSTR Name2,
|
|
271
|
+
BSTR Name3, BSTR Name4, BSTR Name5,
|
|
272
|
+
BSTR Name6, BSTR Name7,
|
|
273
|
+
IRecordset** retVal)
|
|
274
|
+
{
|
|
275
|
+
try
|
|
276
|
+
{
|
|
277
|
+
if (query)
|
|
278
|
+
{
|
|
279
|
+
CARecordset* p = dynamic_cast<CARecordset*>(rs);
|
|
280
|
+
p->QueryInterface(IID_IRecordset, (void**)retVal);
|
|
281
|
+
CQueryBase* qb = dynamic_cast<CQueryBase*>(query);
|
|
282
|
+
queryBase* q = &qb->query();
|
|
283
|
+
if (p && q)
|
|
284
|
+
{
|
|
285
|
+
if (!Name1 || !Name1[0])
|
|
286
|
+
m_at->outerJoin(*p->m_rs, *q, Name0);
|
|
287
|
+
else if (!Name2 || !Name2[0])
|
|
288
|
+
m_at->outerJoin(*p->m_rs, *q, Name0, Name1);
|
|
289
|
+
else if (!Name3 || !Name3[0])
|
|
290
|
+
m_at->outerJoin(*p->m_rs, *q, Name0, Name1, Name2);
|
|
291
|
+
else if (!Name4 || !Name4[0])
|
|
292
|
+
m_at->outerJoin(*p->m_rs, *q, Name0, Name1, Name2, Name3);
|
|
293
|
+
else if (!Name5 || !Name5[0])
|
|
294
|
+
m_at->outerJoin(*p->m_rs, *q, Name0, Name1, Name2, Name3,
|
|
295
|
+
Name4);
|
|
296
|
+
else if (!Name6 || !Name6[0])
|
|
297
|
+
m_at->outerJoin(*p->m_rs, *q, Name0, Name1, Name2, Name3,
|
|
298
|
+
Name4, Name5);
|
|
299
|
+
else if (!Name7 || !Name7[0])
|
|
300
|
+
m_at->outerJoin(*p->m_rs, *q, Name0, Name1, Name2, Name3,
|
|
301
|
+
Name4, Name5, Name6);
|
|
302
|
+
else
|
|
303
|
+
m_at->outerJoin(*p->m_rs, *q, Name0, Name1, Name2, Name3,
|
|
304
|
+
Name4, Name5, Name6, Name7);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
*retVal = rs;
|
|
308
|
+
return S_OK;
|
|
309
|
+
}
|
|
310
|
+
catch (bzs::rtl::exception& e)
|
|
311
|
+
{
|
|
312
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
STDMETHODIMP CActiveTable::GetWritableRecord(IWritableRecord** retVal)
|
|
317
|
+
{
|
|
318
|
+
|
|
319
|
+
if (m_recObj == NULL)
|
|
320
|
+
{
|
|
321
|
+
CComObject<CWritableRecord>::CreateInstance(&m_recObj);
|
|
322
|
+
m_recObj->AddRef();
|
|
323
|
+
m_recObj->m_rec = &m_at->getWritableRecord();
|
|
324
|
+
}
|
|
325
|
+
if (m_recObj)
|
|
326
|
+
{
|
|
327
|
+
|
|
328
|
+
IWritableRecord* wrec;
|
|
329
|
+
m_recObj->QueryInterface(IID_IWritableRecord, (void**)&wrec);
|
|
330
|
+
_ASSERTE(wrec);
|
|
331
|
+
*retVal = wrec;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
return S_OK;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
STDMETHODIMP CActiveTable::get_TableDef(ITableDef** Value)
|
|
338
|
+
{
|
|
339
|
+
CComObject<CTableDef>* piObj;
|
|
340
|
+
CComObject<CTableDef>::CreateInstance(&piObj);
|
|
341
|
+
if (piObj)
|
|
342
|
+
{
|
|
343
|
+
|
|
344
|
+
piObj->m_tabledefPtr =
|
|
345
|
+
const_cast<tabledef**>(m_at->table()->tableDefPtr());
|
|
346
|
+
|
|
347
|
+
ITableDef* tbd;
|
|
348
|
+
piObj->QueryInterface(IID_ITableDef, (void**)&tbd);
|
|
349
|
+
_ASSERTE(tbd);
|
|
350
|
+
*Value = tbd;
|
|
351
|
+
}
|
|
352
|
+
else
|
|
353
|
+
*Value = 0;
|
|
354
|
+
return S_OK;
|
|
355
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
/*=================================================================
|
|
3
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
4
|
+
|
|
5
|
+
This program is free software; you can redistribute it and/or
|
|
6
|
+
modify it under the terms of the GNU General Public License
|
|
7
|
+
as published by the Free Software Foundation; either version 2
|
|
8
|
+
of the License, or (at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU General Public License for more details.
|
|
14
|
+
|
|
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
|
|
18
|
+
02111-1307, USA.
|
|
19
|
+
=================================================================*/
|
|
20
|
+
#include "resource.h"
|
|
21
|
+
|
|
22
|
+
#include "tdclatl_i.h"
|
|
23
|
+
#include <bzs/db/protocol/tdap/client/activeTable.h>
|
|
24
|
+
|
|
25
|
+
using namespace ATL;
|
|
26
|
+
|
|
27
|
+
class CWritableRecord;
|
|
28
|
+
class CARecordset;
|
|
29
|
+
class ATL_NO_VTABLE CActiveTable
|
|
30
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
31
|
+
public CComCoClass<CActiveTable, &CLSID_ActiveTable>,
|
|
32
|
+
public IDispatchImpl<IActiveTable, &IID_IActiveTable, &LIBID_transactd,
|
|
33
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
34
|
+
{
|
|
35
|
+
void setResult(IActiveTable** retVal);
|
|
36
|
+
|
|
37
|
+
bzs::db::protocol::tdap::client::activeTable* m_at;
|
|
38
|
+
CComObject<CWritableRecord>* m_recObj;
|
|
39
|
+
|
|
40
|
+
public:
|
|
41
|
+
CActiveTable() : m_at(NULL), m_recObj(NULL) {}
|
|
42
|
+
|
|
43
|
+
DECLARE_REGISTRY_RESOURCEID(IDR_ACTIVETABLE)
|
|
44
|
+
|
|
45
|
+
BEGIN_COM_MAP(CActiveTable)
|
|
46
|
+
COM_INTERFACE_ENTRY(IActiveTable)
|
|
47
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
48
|
+
END_COM_MAP()
|
|
49
|
+
|
|
50
|
+
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
51
|
+
|
|
52
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
53
|
+
|
|
54
|
+
void FinalRelease();
|
|
55
|
+
|
|
56
|
+
public:
|
|
57
|
+
STDMETHOD(SetDatabase)(VARIANT Value, BSTR tableName);
|
|
58
|
+
|
|
59
|
+
STDMETHOD(Index)(short Value, IActiveTable** retVal);
|
|
60
|
+
STDMETHOD(KeyValue)(VARIANT Value0, VARIANT Value1, VARIANT Value2,
|
|
61
|
+
VARIANT Value3, VARIANT Value4, VARIANT Value5,
|
|
62
|
+
VARIANT Value6, VARIANT Value7, IActiveTable** retVal);
|
|
63
|
+
|
|
64
|
+
STDMETHOD(Option)(int Value, IActiveTable** retVal);
|
|
65
|
+
STDMETHOD(Read)(VARIANT /*IQueryBase**/ query, IRecordset** retVal);
|
|
66
|
+
STDMETHOD(Alias)(BSTR Src, BSTR Dst, IActiveTable** retVal);
|
|
67
|
+
STDMETHOD(ResetAlias)(IActiveTable** retVal);
|
|
68
|
+
STDMETHOD(Join)(IRecordset* rs, IQueryBase* query, BSTR Name0, BSTR Name1,
|
|
69
|
+
BSTR Name2, BSTR Name3, BSTR Name4, BSTR Name5, BSTR Name6,
|
|
70
|
+
BSTR Name7, IRecordset** retVal);
|
|
71
|
+
STDMETHOD(OuterJoin)(IRecordset* rs, IQueryBase* query, BSTR Name0,
|
|
72
|
+
BSTR Name1, BSTR Name2, BSTR Name3, BSTR Name4,
|
|
73
|
+
BSTR Name5, BSTR Name6, BSTR Name7,
|
|
74
|
+
IRecordset** retVal);
|
|
75
|
+
STDMETHOD(GetWritableRecord)(IWritableRecord** retVal);
|
|
76
|
+
STDMETHOD(get_TableDef)(ITableDef** Value);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
OBJECT_ENTRY_AUTO(__uuidof(ActiveTable), CActiveTable)
|
|
@@ -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"
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
CtdclatlModule _AtlModule;
|
|
25
25
|
|
|
26
|
-
extern "C" BOOL WINAPI
|
|
26
|
+
extern "C" BOOL WINAPI
|
|
27
|
+
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
|
|
27
28
|
{
|
|
28
29
|
hInstance;
|
|
29
30
|
return _AtlModule.DllMain(dwReason, lpReserved);
|
|
@@ -12,16 +12,17 @@
|
|
|
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
|
|
|
20
|
-
class CtdclatlModule : public ATL::CAtlDllModuleT<
|
|
20
|
+
class CtdclatlModule : public ATL::CAtlDllModuleT<CtdclatlModule>
|
|
21
21
|
{
|
|
22
|
-
public
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
public:
|
|
23
|
+
DECLARE_LIBID(LIBID_transactd)
|
|
24
|
+
DECLARE_REGISTRY_APPID_RESOURCEID(IDR_TDCLATL,
|
|
25
|
+
"{0F94D9C4-FB96-4084-A939-EEC3992454B4}")
|
|
25
26
|
};
|
|
26
27
|
|
|
27
28
|
extern class CtdclatlModule _AtlModule;
|
|
@@ -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"
|
|
@@ -24,34 +24,38 @@
|
|
|
24
24
|
#include <bzs/db/protocol/tdap/client/dbDef.h>
|
|
25
25
|
using namespace ATL;
|
|
26
26
|
|
|
27
|
-
class ATL_NO_VTABLE CKeySegment
|
|
28
|
-
public
|
|
29
|
-
|
|
27
|
+
class ATL_NO_VTABLE CKeySegment
|
|
28
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
29
|
+
public CComCoClass<CKeySegment, &CLSID_KeySegment>,
|
|
30
|
+
public IDispatchImpl<IKeySegment, &IID_IKeySegment, &LIBID_transactd,
|
|
31
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
30
32
|
{
|
|
31
|
-
|
|
33
|
+
bzs::db::protocol::tdap::keySegment* segment()
|
|
34
|
+
{
|
|
35
|
+
return &(*m_tabledefPtr)->keyDefs[m_keyIndex].segments[m_index];
|
|
36
|
+
};
|
|
37
|
+
|
|
32
38
|
public:
|
|
33
|
-
CKeySegment(): m_tabledefPtr(NULL){}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
CKeySegment() : m_tabledefPtr(NULL) {}
|
|
40
|
+
bzs::db::protocol::tdap::tabledef** m_tabledefPtr;
|
|
41
|
+
short m_keyIndex;
|
|
42
|
+
short m_index;
|
|
43
|
+
|
|
44
|
+
BEGIN_COM_MAP(CKeySegment)
|
|
45
|
+
COM_INTERFACE_ENTRY(IKeySegment)
|
|
46
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
47
|
+
END_COM_MAP()
|
|
42
48
|
|
|
43
49
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
44
50
|
|
|
45
|
-
HRESULT FinalConstruct() {return S_OK;}
|
|
51
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
46
52
|
|
|
47
53
|
void FinalRelease() {}
|
|
48
54
|
|
|
49
55
|
public:
|
|
50
|
-
|
|
51
56
|
STDMETHOD(get_FieldNum)(unsigned char* Value);
|
|
52
57
|
STDMETHOD(get_Flags)(IFlags** Value);
|
|
53
58
|
|
|
54
59
|
STDMETHOD(put_FieldNum)(unsigned char Value);
|
|
55
60
|
STDMETHOD(put_Flags)(IFlags* Value);
|
|
56
|
-
|
|
57
61
|
};
|
|
Binary file
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
// stdafx.h : �W���̃V�X�e�� �C���N���[�h �t�@�C���̃C���N���[�h
|
|
2
|
-
// �
|
|
1
|
+
// stdafx.h : �W���̃V�X�e�� �C���N���[�h �t�@�C���̃C���N���[�h
|
|
2
|
+
// �t�@�C���A�܂���
|
|
3
|
+
// �Q�Ɖ������A�����܂�ύX����Ȃ��A�v���W�F�N�g��p�̃C���N���[�h
|
|
4
|
+
// �t�@�C��
|
|
3
5
|
// ���L�q���܂��B
|
|
4
6
|
|
|
5
7
|
#pragma once
|
|
@@ -14,8 +16,8 @@
|
|
|
14
16
|
|
|
15
17
|
#define _ATL_NO_AUTOMATIC_NAMESPACE
|
|
16
18
|
|
|
17
|
-
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS
|
|
18
|
-
|
|
19
|
+
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // �ꕔ�� CString
|
|
20
|
+
// �R���X�g���N�^�[�͖����I�ł��B
|
|
19
21
|
|
|
20
22
|
#define ATL_NO_ASSERT_ON_DESTROY_NONEXISTENT_WINDOW
|
|
21
23
|
|
|
@@ -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"
|
|
@@ -21,10 +21,15 @@
|
|
|
21
21
|
#include "tdclatl_i.h"
|
|
22
22
|
#include "dllmain.h"
|
|
23
23
|
|
|
24
|
-
STDAPI DllCanUnloadNow(void)
|
|
24
|
+
STDAPI DllCanUnloadNow(void)
|
|
25
|
+
{
|
|
26
|
+
return _AtlModule.DllCanUnloadNow();
|
|
27
|
+
}
|
|
25
28
|
|
|
26
|
-
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
|
|
27
|
-
|
|
29
|
+
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
|
|
30
|
+
{
|
|
31
|
+
return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
|
|
32
|
+
}
|
|
28
33
|
|
|
29
34
|
STDAPI DllRegisterServer(void)
|
|
30
35
|
{
|