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,295 @@
|
|
|
1
|
+
#ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_SERIALIZEER_H
|
|
2
|
+
#define BZS_DB_PROTOCOL_TDAP_CLIENT_SERIALIZEER_H
|
|
3
|
+
/*=================================================================
|
|
4
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
5
|
+
|
|
6
|
+
This program is free software; you can redistribute it and/or
|
|
7
|
+
modify it under the terms of the GNU General Public License
|
|
8
|
+
as published by the Free Software Foundation; either version 2
|
|
9
|
+
of the License, or (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU General Public License
|
|
17
|
+
along with this program; if not, write to the Free Software
|
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
19
|
+
02111-1307, USA.
|
|
20
|
+
=================================================================*/
|
|
21
|
+
#include <bzs/db/protocol/tdap/client/activeTable.h>
|
|
22
|
+
#include <sstream>
|
|
23
|
+
|
|
24
|
+
#ifdef LIB_TDCLSTMT
|
|
25
|
+
#define DLLLIBSTMT AGRPACK
|
|
26
|
+
#else
|
|
27
|
+
#ifdef BCB_32
|
|
28
|
+
#define DLLLIBSTMT AGRPACK
|
|
29
|
+
#else
|
|
30
|
+
#define DLLLIBSTMT // PACKAGE_IMPORT
|
|
31
|
+
#endif
|
|
32
|
+
#endif // LIB_TDCLSTMT
|
|
33
|
+
|
|
34
|
+
#if (defined(TRDCL_AUTOLINK) && !defined(LIB_TDCLSTMT))
|
|
35
|
+
#include "trdclcppautolink.h"
|
|
36
|
+
#define TD_STMT_LIB_NAME \
|
|
37
|
+
LIB_PREFIX "tdclstmt" CPP_INTERFACE_VERSTR SHARED_LIB_EXTENTION
|
|
38
|
+
#pragma comment(lib, TD_STMT_LIB_NAME)
|
|
39
|
+
#endif // TRDCL_AUTOLINK
|
|
40
|
+
|
|
41
|
+
namespace bzs
|
|
42
|
+
{
|
|
43
|
+
namespace db
|
|
44
|
+
{
|
|
45
|
+
namespace protocol
|
|
46
|
+
{
|
|
47
|
+
namespace tdap
|
|
48
|
+
{
|
|
49
|
+
namespace client
|
|
50
|
+
{
|
|
51
|
+
/** @cond INTERNAL */
|
|
52
|
+
#define ID_READ_STMT 0
|
|
53
|
+
#define ID_READHASMANY_STMT 1
|
|
54
|
+
#define ID_GROUPBY_STMT 2
|
|
55
|
+
#define ID_ORDERBY_STMT 3
|
|
56
|
+
#define ID_REVORDER_STMT 4
|
|
57
|
+
#define ID_MATCHBY_STMT 5
|
|
58
|
+
#define ID_MAX_STMT 6
|
|
59
|
+
|
|
60
|
+
class DLLLIBSTMT executable
|
|
61
|
+
{
|
|
62
|
+
friend struct queryStatementsImple;
|
|
63
|
+
|
|
64
|
+
public:
|
|
65
|
+
virtual ~executable(){};
|
|
66
|
+
virtual void execute(recordset& rs) = 0;
|
|
67
|
+
void release();
|
|
68
|
+
virtual const int typeID() const = 0;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
class DLLLIBSTMT groupByStatement : public fieldNames, public executable
|
|
72
|
+
{
|
|
73
|
+
struct queryStatementsImple* m_parent;
|
|
74
|
+
friend class queryStatements;
|
|
75
|
+
friend struct queryStatementsImple;
|
|
76
|
+
std::vector<groupFuncBase*>* m_statements;
|
|
77
|
+
|
|
78
|
+
template <class Archive>
|
|
79
|
+
friend void serialize(Archive& ar, groupByStatement& q,
|
|
80
|
+
const unsigned int version);
|
|
81
|
+
groupByStatement(const groupByStatement& r); // no implements
|
|
82
|
+
groupByStatement& operator=(const groupByStatement& r); // no implements
|
|
83
|
+
|
|
84
|
+
public:
|
|
85
|
+
enum eFunc
|
|
86
|
+
{
|
|
87
|
+
fsum,
|
|
88
|
+
fcount,
|
|
89
|
+
favg,
|
|
90
|
+
fmin,
|
|
91
|
+
fmax
|
|
92
|
+
};
|
|
93
|
+
groupByStatement();
|
|
94
|
+
~groupByStatement();
|
|
95
|
+
|
|
96
|
+
groupFuncBase& addFunction(eFunc v, const fieldNames& targetNames,
|
|
97
|
+
const _TCHAR* resultName = NULL);
|
|
98
|
+
groupFuncBase& function(int index);
|
|
99
|
+
groupByStatement& reset();
|
|
100
|
+
int size() const;
|
|
101
|
+
void execute(recordset& rs);
|
|
102
|
+
const int typeID() const { return ID_GROUPBY_STMT; };
|
|
103
|
+
static groupByStatement* create();
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
#define MAX_FUNCTION_SIZE (int) groupByStatement::fmax + 1
|
|
107
|
+
|
|
108
|
+
class DLLLIBSTMT matchByStatement : public recordsetQuery, public executable
|
|
109
|
+
{
|
|
110
|
+
struct queryStatementsImple* m_parent;
|
|
111
|
+
friend class queryStatements;
|
|
112
|
+
friend struct queryStatementsImple;
|
|
113
|
+
|
|
114
|
+
public:
|
|
115
|
+
void execute(recordset& rs);
|
|
116
|
+
static matchByStatement* create();
|
|
117
|
+
const int typeID() const { return ID_MATCHBY_STMT; };
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
class DLLLIBSTMT orderByStatement : public executable
|
|
121
|
+
{
|
|
122
|
+
sortFields* m_sortFields;
|
|
123
|
+
template <class Archive>
|
|
124
|
+
friend void serialize(Archive& ar, orderByStatement& q,
|
|
125
|
+
const unsigned int version);
|
|
126
|
+
orderByStatement(const orderByStatement& r); // no implements
|
|
127
|
+
orderByStatement& operator=(const orderByStatement& r); // no implements
|
|
128
|
+
public:
|
|
129
|
+
~orderByStatement();
|
|
130
|
+
orderByStatement();
|
|
131
|
+
void execute(recordset& rs);
|
|
132
|
+
void add(const _TCHAR* name, bool asc = true);
|
|
133
|
+
orderByStatement& reset();
|
|
134
|
+
int size() const;
|
|
135
|
+
const sortField& get(int index) const;
|
|
136
|
+
const int typeID() const { return ID_ORDERBY_STMT; };
|
|
137
|
+
static orderByStatement* create();
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
class DLLLIBSTMT reverseOrderStatement : public executable
|
|
141
|
+
{
|
|
142
|
+
//~reverseOrderStatement(){};
|
|
143
|
+
// reverseOrderStatement():executable(){};
|
|
144
|
+
|
|
145
|
+
public:
|
|
146
|
+
void execute(recordset& rs);
|
|
147
|
+
const int typeID() const { return ID_REVORDER_STMT; };
|
|
148
|
+
static reverseOrderStatement* create();
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
class DLLLIBSTMT readStatement : public fieldNames,
|
|
152
|
+
public query,
|
|
153
|
+
public executable
|
|
154
|
+
{
|
|
155
|
+
friend struct queryStatementsImple;
|
|
156
|
+
friend class queryStatements;
|
|
157
|
+
|
|
158
|
+
struct queryStatementImple* m_impl;
|
|
159
|
+
queryStatementImple* internalPtr() const;
|
|
160
|
+
template <class Archive>
|
|
161
|
+
friend void serialize(Archive& ar, readStatement& q,
|
|
162
|
+
const unsigned int version);
|
|
163
|
+
readStatement(const readStatement& r); // no implements
|
|
164
|
+
readStatement& operator=(const readStatement& r); // no implements
|
|
165
|
+
public:
|
|
166
|
+
~readStatement();
|
|
167
|
+
readStatement();
|
|
168
|
+
|
|
169
|
+
enum eReadType
|
|
170
|
+
{
|
|
171
|
+
opRead,
|
|
172
|
+
opJoin,
|
|
173
|
+
opOuterJoin
|
|
174
|
+
};
|
|
175
|
+
int getIndex() const;
|
|
176
|
+
readStatement& index(int v);
|
|
177
|
+
int getOption() const;
|
|
178
|
+
readStatement& option(int v);
|
|
179
|
+
const _TCHAR* getDatabaseUri() const;
|
|
180
|
+
readStatement& databaseUri(const _TCHAR* v);
|
|
181
|
+
const _TCHAR* getTableName() const;
|
|
182
|
+
readStatement& tableName(const _TCHAR* v);
|
|
183
|
+
eReadType getReadType() const;
|
|
184
|
+
readStatement& readType(eReadType v);
|
|
185
|
+
readStatement& alias(const _TCHAR* src, const _TCHAR* dst);
|
|
186
|
+
readStatement& reset();
|
|
187
|
+
int aliasCount() const;
|
|
188
|
+
const _TCHAR* getAliasFirst(int index) const;
|
|
189
|
+
const _TCHAR* getAliasSecond(int index) const;
|
|
190
|
+
|
|
191
|
+
void execute(recordset& rs);
|
|
192
|
+
const int typeID() const { return ID_READ_STMT; };
|
|
193
|
+
static readStatement* create();
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
typedef std::vector<boost::shared_ptr<recordset> > recordsets;
|
|
197
|
+
|
|
198
|
+
class DLLLIBSTMT readHasMany : public readStatement
|
|
199
|
+
{
|
|
200
|
+
struct readHasManyImple* m_readHasManyImpl;
|
|
201
|
+
readHasManyImple* internalPtr() const;
|
|
202
|
+
template <class Archive>
|
|
203
|
+
friend void serialize(Archive& ar, readHasMany& q,
|
|
204
|
+
const unsigned int version);
|
|
205
|
+
readHasMany(const readHasMany& r); // no implements
|
|
206
|
+
readHasMany& operator=(const readHasMany& r); // no implements
|
|
207
|
+
public:
|
|
208
|
+
~readHasMany();
|
|
209
|
+
readHasMany();
|
|
210
|
+
client::recordsets& recordsets();
|
|
211
|
+
void addkeyValueColumn(const _TCHAR* name);
|
|
212
|
+
const _TCHAR* getkeyValueColumn(int index) const;
|
|
213
|
+
int keyValueColumns() const;
|
|
214
|
+
readHasMany& reset();
|
|
215
|
+
void execute(recordset& rs);
|
|
216
|
+
const int typeID() const { return ID_READHASMANY_STMT; };
|
|
217
|
+
static readHasMany* create();
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
class executeListner
|
|
221
|
+
{
|
|
222
|
+
public:
|
|
223
|
+
virtual void onExecuted(const executable* e, const recordset& rs) = 0;
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
class DLLLIBSTMT queryStatements
|
|
227
|
+
{
|
|
228
|
+
struct queryStatementsImple* m_impl;
|
|
229
|
+
queryStatementsImple* internalPtr() const;
|
|
230
|
+
template <class Archive>
|
|
231
|
+
friend void serialize(Archive& ar, queryStatements& q,
|
|
232
|
+
const unsigned int version);
|
|
233
|
+
queryStatements(const queryStatements& r); // no implements
|
|
234
|
+
queryStatements& operator=(const queryStatements& r); // no implements
|
|
235
|
+
void* getPtr(const executable* e) const;
|
|
236
|
+
|
|
237
|
+
public:
|
|
238
|
+
queryStatements(idatabaseManager& dbm);
|
|
239
|
+
queryStatements(database* db);
|
|
240
|
+
~queryStatements();
|
|
241
|
+
int getId() const;
|
|
242
|
+
queryStatements& id(int v);
|
|
243
|
+
const _TCHAR* getTitle() const;
|
|
244
|
+
queryStatements& title(const _TCHAR* v);
|
|
245
|
+
const _TCHAR* getDescription() const;
|
|
246
|
+
queryStatements& description(const _TCHAR* v);
|
|
247
|
+
executable* get(int index);
|
|
248
|
+
void pop_back();
|
|
249
|
+
|
|
250
|
+
readStatement* addRead(readStatement::eReadType type);
|
|
251
|
+
readHasMany* addHasManyRead();
|
|
252
|
+
groupByStatement* addGroupBy();
|
|
253
|
+
orderByStatement* addOrderBy();
|
|
254
|
+
matchByStatement* addMatchBy();
|
|
255
|
+
reverseOrderStatement* addReverseOrder();
|
|
256
|
+
int statementType(int index);
|
|
257
|
+
|
|
258
|
+
readStatement* getReadStatement(executable* e);
|
|
259
|
+
readHasMany* getReadHasMany(executable* e);
|
|
260
|
+
groupByStatement* getGroupByStatement(executable* e);
|
|
261
|
+
orderByStatement* getOrderByStatement(executable* e);
|
|
262
|
+
matchByStatement* getMatchByStatement(executable* e);
|
|
263
|
+
reverseOrderStatement* getReverseOrderStatement(executable* e);
|
|
264
|
+
|
|
265
|
+
const readStatement* getReadStatement(const executable* e) const;
|
|
266
|
+
const readHasMany* getReadHasMany(const executable* e) const;
|
|
267
|
+
const groupByStatement* getGroupByStatement(const executable* e) const;
|
|
268
|
+
const orderByStatement* getOrderByStatement(const executable* e) const;
|
|
269
|
+
const matchByStatement* getMatchByStatement(const executable* e) const;
|
|
270
|
+
const reverseOrderStatement*
|
|
271
|
+
getReverseOrderStatement(const executable* e) const;
|
|
272
|
+
|
|
273
|
+
void clear();
|
|
274
|
+
int size() const;
|
|
275
|
+
void save(const _TCHAR* filename);
|
|
276
|
+
void load(const _TCHAR* filename);
|
|
277
|
+
void save(std::stringstream& sf);
|
|
278
|
+
void load(std::stringstream& sf);
|
|
279
|
+
void execute(recordset& rs, const std::vector<std::_tstring>* values = NULL,
|
|
280
|
+
executeListner* listner = NULL);
|
|
281
|
+
static queryStatements* create(idatabaseManager& dbm);
|
|
282
|
+
static queryStatements* create(database* db);
|
|
283
|
+
|
|
284
|
+
void release();
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
/** @endcond */
|
|
288
|
+
|
|
289
|
+
} // namespace client
|
|
290
|
+
} // namespace tdap
|
|
291
|
+
} // namespace protocol
|
|
292
|
+
} // namespace db
|
|
293
|
+
} // namespace bzs
|
|
294
|
+
|
|
295
|
+
#endif // BZS_DB_PROTOCOL_TDAP_CLIENT_SERIALIZEER_H
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
|
|
22
22
|
#pragma package(smart_init)
|
|
23
23
|
|
|
24
|
-
|
|
25
24
|
namespace bzs
|
|
26
25
|
{
|
|
27
26
|
namespace db
|
|
@@ -33,26 +32,24 @@ namespace tdap
|
|
|
33
32
|
namespace client
|
|
34
33
|
{
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
static nsdatabase* g_engins[MAX_BTRENGIN]={0};
|
|
35
|
+
static nsdatabase* g_engins[MAX_BTRENGIN] = { 0 };
|
|
38
36
|
|
|
39
37
|
nsdatabase** enginsInternal()
|
|
40
38
|
{
|
|
41
|
-
|
|
39
|
+
return g_engins;
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
#ifdef ARBTREGN_SHARED_DLL
|
|
45
43
|
nsdatabase** enginsShared()
|
|
46
44
|
{
|
|
47
|
-
|
|
45
|
+
return g_engins;
|
|
48
46
|
}
|
|
49
47
|
#endif
|
|
50
48
|
|
|
51
|
-
EnginsFunc engins=enginsInternal;
|
|
52
|
-
|
|
49
|
+
EnginsFunc engins = enginsInternal;
|
|
53
50
|
|
|
54
|
-
}//namespace client
|
|
55
|
-
}//namespace tdap
|
|
56
|
-
}//namespace protocol
|
|
57
|
-
}//namespace db
|
|
58
|
-
}//namespace bzs
|
|
51
|
+
} // namespace client
|
|
52
|
+
} // namespace tdap
|
|
53
|
+
} // namespace protocol
|
|
54
|
+
} // namespace db
|
|
55
|
+
} // namespace bzs
|
|
@@ -31,26 +31,28 @@ namespace tdap
|
|
|
31
31
|
namespace client
|
|
32
32
|
{
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
#define MAX_BTRENGIN 50
|
|
34
|
+
#define MAX_BTRENGIN 2000
|
|
36
35
|
|
|
37
36
|
class nsdatabase;
|
|
38
37
|
typedef nsdatabase** (*EnginsFunc)();
|
|
39
38
|
|
|
40
|
-
#ifdef
|
|
41
|
-
|
|
39
|
+
#ifdef LIB_TDCLCPP
|
|
40
|
+
PACKAGE void registEnginsPtr(EnginsFunc func); // If use shared dll then you
|
|
41
|
+
// need Call this function.
|
|
42
|
+
// Implemant at trdclengne
|
|
43
|
+
#else
|
|
44
|
+
PACKAGE_IMPORT void registEnginsPtr(EnginsFunc func);
|
|
45
|
+
#ifdef ARBTREGN_SHARED_DLL
|
|
46
|
+
PACKAGE nsdatabase** enginsShared();
|
|
42
47
|
#else
|
|
43
|
-
|
|
44
|
-
#ifdef ARBTREGN_SHARED_DLL
|
|
45
|
-
PACKAGE nsdatabase** enginsShared();
|
|
46
|
-
#else
|
|
47
|
-
PACKAGE_IMPORT nsdatabase** enginsShared(); //Implemant at ARBtEgn_Shared.dll
|
|
48
|
-
#endif
|
|
48
|
+
PACKAGE_IMPORT nsdatabase** enginsShared(); // Implemant at ARBtEgn_Shared.dll
|
|
49
49
|
#endif
|
|
50
|
+
#endif
|
|
51
|
+
|
|
52
|
+
} // namespace client
|
|
53
|
+
} // namespace tdap
|
|
54
|
+
} // namespace protocol
|
|
55
|
+
} // namespace db
|
|
56
|
+
} // namespace bzs
|
|
50
57
|
|
|
51
|
-
|
|
52
|
-
}//namespace tdap
|
|
53
|
-
}//namespace protocol
|
|
54
|
-
}//namespace db
|
|
55
|
-
}//namespace bzs
|
|
56
|
-
#endif//BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
|
|
58
|
+
#endif // BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
|