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
|
@@ -1,118 +1,141 @@
|
|
|
1
|
-
#ifndef
|
|
2
|
-
#define
|
|
3
|
-
/* =================================================================
|
|
4
|
-
Copyright (C) 2000-2013 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 "nsDatabase.h"
|
|
22
|
-
|
|
23
|
-
namespace bzs
|
|
24
|
-
{
|
|
25
|
-
namespace db
|
|
26
|
-
{
|
|
27
|
-
namespace protocol
|
|
28
|
-
{
|
|
29
|
-
namespace tdap
|
|
30
|
-
{
|
|
31
|
-
namespace client
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
class database;
|
|
35
|
-
class table;
|
|
36
|
-
class
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
#else
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
virtual
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const _TCHAR*
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
void
|
|
93
|
-
void
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
void
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
1
|
+
#ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
|
|
2
|
+
#define BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
|
|
3
|
+
/* =================================================================
|
|
4
|
+
Copyright (C) 2000-2013 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 "nsDatabase.h"
|
|
22
|
+
|
|
23
|
+
namespace bzs
|
|
24
|
+
{
|
|
25
|
+
namespace db
|
|
26
|
+
{
|
|
27
|
+
namespace protocol
|
|
28
|
+
{
|
|
29
|
+
namespace tdap
|
|
30
|
+
{
|
|
31
|
+
namespace client
|
|
32
|
+
{
|
|
33
|
+
|
|
34
|
+
class database;
|
|
35
|
+
class table;
|
|
36
|
+
class dbdef;
|
|
37
|
+
|
|
38
|
+
#if defined(__BORLANDC__)
|
|
39
|
+
typedef bool __stdcall (*deleteRecordFn)(database* db, table* tb, bool inkey);
|
|
40
|
+
typedef short __stdcall (*schemaMgrFn)(database* db);
|
|
41
|
+
typedef void __stdcall (*copyDataFn)(database* db, int recordCount, int count,
|
|
42
|
+
bool& cancel);
|
|
43
|
+
#else
|
|
44
|
+
/** @cond INTERNAL */
|
|
45
|
+
/** Callback function on a record was deleted. */
|
|
46
|
+
typedef bool(__STDCALL* deleteRecordFn)(database* db, table* tb, bool inkey);
|
|
47
|
+
/** @endcond */
|
|
48
|
+
|
|
49
|
+
/** Callback function on a database is opening by database::open operation.
|
|
50
|
+
This is use for change a table schema and table data at before database
|
|
51
|
+
*/
|
|
52
|
+
typedef short(__STDCALL* schemaMgrFn)(database* db);
|
|
53
|
+
|
|
54
|
+
/** Callback function on a record was copied by convert table operation. */
|
|
55
|
+
typedef void(__STDCALL* copyDataFn)(database* db, int recordCount, int count,
|
|
56
|
+
bool& cancel);
|
|
57
|
+
#endif
|
|
58
|
+
|
|
59
|
+
class DLLLIB database : public nsdatabase
|
|
60
|
+
{
|
|
61
|
+
struct dbimple* m_impl;
|
|
62
|
+
|
|
63
|
+
void setDir(const _TCHAR* directory);
|
|
64
|
+
virtual table* createTableObject();
|
|
65
|
+
|
|
66
|
+
protected:
|
|
67
|
+
database& operator=(const database&);
|
|
68
|
+
database();
|
|
69
|
+
virtual ~database();
|
|
70
|
+
void setLockReadOnly(bool v);
|
|
71
|
+
virtual void doClose();
|
|
72
|
+
virtual void doOpen(const _TCHAR* uri, short type, short mode,
|
|
73
|
+
const _TCHAR* username);
|
|
74
|
+
|
|
75
|
+
virtual bool onOpenAfter() { return true; };
|
|
76
|
+
|
|
77
|
+
virtual bool onTableOpened(table* tb, short fileNum, short mode,
|
|
78
|
+
bool isCreated)
|
|
79
|
+
{
|
|
80
|
+
return true;
|
|
81
|
+
};
|
|
82
|
+
virtual char* getContinuousList(int option);
|
|
83
|
+
virtual void onCopyDataInternal(table* tb, int recordCount, int count,
|
|
84
|
+
bool& cancel);
|
|
85
|
+
virtual void doConvertTable(short tableIndex, bool turbo,
|
|
86
|
+
const _TCHAR* ownerName);
|
|
87
|
+
|
|
88
|
+
public:
|
|
89
|
+
virtual void release();
|
|
90
|
+
dbdef* dbDef() const;
|
|
91
|
+
const _TCHAR* rootDir() const;
|
|
92
|
+
void setRootDir(const _TCHAR* directory);
|
|
93
|
+
void* optionalData() const;
|
|
94
|
+
void setOptionalData(void* v);
|
|
95
|
+
bool tableReadOnly() const;
|
|
96
|
+
void setTableReadOnly(bool value);
|
|
97
|
+
const deleteRecordFn onDeleteRecord() const;
|
|
98
|
+
void setOnDeleteRecord(const deleteRecordFn v);
|
|
99
|
+
const copyDataFn onCopyData() const;
|
|
100
|
+
void setOnCopyData(const copyDataFn v);
|
|
101
|
+
bool open(const _TCHAR* uri, short schemaType = 0, short mode = -2,
|
|
102
|
+
const _TCHAR* dir = NULL, const _TCHAR* ownerName = NULL);
|
|
103
|
+
table* openTable(short fileNum, short mode = TD_OPEN_NORMAL,
|
|
104
|
+
bool autoCreate = true, const _TCHAR* ownerName = NULL,
|
|
105
|
+
const _TCHAR* uri = NULL);
|
|
106
|
+
table* openTable(const _TCHAR* tableName, short mode = 0,
|
|
107
|
+
bool autoCreate = true, const _TCHAR* ownerName = NULL,
|
|
108
|
+
const _TCHAR* uri = NULL);
|
|
109
|
+
database* clone();
|
|
110
|
+
bool createTable(short fileNum, const _TCHAR* uri = NULL);
|
|
111
|
+
void create(const _TCHAR* uri, short type = TYPE_SCHEMA_BDF);
|
|
112
|
+
void drop();
|
|
113
|
+
void dropTable(const _TCHAR* tableName);
|
|
114
|
+
void close();
|
|
115
|
+
short continuous(char_td op = TD_BACKUP_START, bool inclideRepfile = false);
|
|
116
|
+
short assignSchemaData(dbdef* src);
|
|
117
|
+
short copyTableData(table* dest, table* src, bool turbo, int offset = 0,
|
|
118
|
+
short keyNum = -1, int maxSkip = -1);
|
|
119
|
+
void convertTable(short tableIndex, bool turbo,
|
|
120
|
+
const _TCHAR* ownerName = NULL);
|
|
121
|
+
bool existsTableFile(short tableIndex, const _TCHAR* ownerName = NULL);
|
|
122
|
+
_TCHAR* getTableUri(_TCHAR* buf, short fileNum);
|
|
123
|
+
void getBtrVersion(btrVersions* versions);
|
|
124
|
+
bool isOpened() const;
|
|
125
|
+
char_td mode() const;
|
|
126
|
+
|
|
127
|
+
virtual int defaultAutoIncSpace() const { return 0; };
|
|
128
|
+
static database* create();
|
|
129
|
+
/* For C++ direct only. don't use by wrapper class for COM or SWIG
|
|
130
|
+
This method is ignore refarence count of nsdatabse.
|
|
131
|
+
*/
|
|
132
|
+
static void destroy(database* db);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
} // namespace client
|
|
136
|
+
} // namespace tdap
|
|
137
|
+
} // namespace protocol
|
|
138
|
+
} // namespace db
|
|
139
|
+
} // namespace bzs
|
|
140
|
+
|
|
141
|
+
#endif // BZS_DB_PROTOCOL_TDAP_CLIENT_DATABASE_H
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
#include <bzs/rtl/exception.h>
|
|
24
24
|
//---------------------------------------------------------------------------
|
|
25
25
|
|
|
26
|
-
|
|
27
26
|
#pragma package(smart_init)
|
|
28
27
|
|
|
29
28
|
namespace bzs
|
|
@@ -37,32 +36,33 @@ namespace tdap
|
|
|
37
36
|
namespace client
|
|
38
37
|
{
|
|
39
38
|
|
|
40
|
-
|
|
41
39
|
database* database::create()
|
|
42
40
|
{
|
|
43
41
|
try
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
{
|
|
43
|
+
return new database();
|
|
44
|
+
}
|
|
45
|
+
catch (bzs::rtl::exception& /*e*/)
|
|
46
|
+
{
|
|
47
|
+
}
|
|
48
|
+
return NULL;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
}//namespace client
|
|
52
|
-
}//namespace tdap
|
|
53
|
-
}//namespace protocol
|
|
54
|
-
}//namespace db
|
|
55
|
-
}//namespace bzs
|
|
56
|
-
|
|
51
|
+
} // namespace client
|
|
52
|
+
} // namespace tdap
|
|
53
|
+
} // namespace protocol
|
|
54
|
+
} // namespace db
|
|
55
|
+
} // namespace bzs
|
|
57
56
|
|
|
58
57
|
#undef USETLS
|
|
59
|
-
#if ((defined(_WIN32) && _MSC_VER) || __APPLE__)
|
|
58
|
+
#if ((defined(_WIN32) && _MSC_VER) || (__APPLE__ && !defined(__BCPLUSPLUS__)))
|
|
60
59
|
#define USETLS
|
|
61
60
|
#endif
|
|
62
61
|
|
|
63
|
-
/* At MSVC use __thread before Windows Vista, After the DLL is loaded with
|
|
62
|
+
/* At MSVC use __thread before Windows Vista, After the DLL is loaded with
|
|
63
|
+
LoadLibrary
|
|
64
64
|
then it causes system failure.
|
|
65
|
-
|
|
65
|
+
|
|
66
66
|
*/
|
|
67
67
|
#ifdef USETLS
|
|
68
68
|
tls_key g_tlsiID_SC1;
|
|
@@ -71,72 +71,70 @@ tls_key g_tlsiID_SC3;
|
|
|
71
71
|
|
|
72
72
|
void initTlsThread()
|
|
73
73
|
{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
tls_setspecific(g_tlsiID_SC1, new wchar_t[256]);
|
|
75
|
+
tls_setspecific(g_tlsiID_SC2, new wchar_t[45]);
|
|
76
|
+
tls_setspecific(g_tlsiID_SC3, new wchar_t[45]);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
void cleanupTls()
|
|
80
80
|
{
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
delete (char*)tls_getspecific(g_tlsiID_SC1);
|
|
82
|
+
delete (char*)tls_getspecific(g_tlsiID_SC2);
|
|
83
|
+
delete (char*)tls_getspecific(g_tlsiID_SC3);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
#ifdef __APPLE__
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
#include <pthread.h>
|
|
89
|
+
|
|
90
|
+
void __attribute__((constructor)) onLoadLibrary(void);
|
|
91
|
+
void __attribute__((destructor)) onUnloadLibrary(void);
|
|
90
92
|
|
|
91
93
|
void onLoadLibrary(void)
|
|
92
94
|
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
95
|
+
pthread_key_create(&g_tlsiID_SC1, NULL);
|
|
96
|
+
pthread_key_create(&g_tlsiID_SC2, NULL);
|
|
97
|
+
pthread_key_create(&g_tlsiID_SC3, NULL);
|
|
96
98
|
}
|
|
97
99
|
|
|
98
100
|
void onUnloadLibrary(void)
|
|
99
101
|
{
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
cleanupTls();
|
|
103
|
+
pthread_key_delete(g_tlsiID_SC1);
|
|
104
|
+
pthread_key_delete(g_tlsiID_SC2);
|
|
105
|
+
pthread_key_delete(g_tlsiID_SC3);
|
|
104
106
|
}
|
|
105
107
|
|
|
106
|
-
|
|
107
|
-
|
|
108
108
|
#else
|
|
109
109
|
|
|
110
|
-
BOOL APIENTRY DllMain(HMODULE hModule, DWORD
|
|
110
|
+
BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
|
|
111
111
|
{
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
112
|
+
if (reason == DLL_PROCESS_ATTACH)
|
|
113
|
+
{
|
|
114
|
+
if ((g_tlsiID_SC1 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
|
|
115
|
+
return FALSE;
|
|
116
|
+
if ((g_tlsiID_SC2 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
|
|
117
|
+
return FALSE;
|
|
118
|
+
if ((g_tlsiID_SC3 = TlsAlloc()) == TLS_OUT_OF_INDEXES)
|
|
119
|
+
return FALSE;
|
|
120
|
+
initTlsThread();
|
|
121
|
+
}
|
|
122
|
+
else if (reason == DLL_THREAD_ATTACH)
|
|
123
|
+
{
|
|
124
|
+
initTlsThread();
|
|
125
|
+
}
|
|
126
|
+
else if (reason == DLL_THREAD_DETACH)
|
|
127
|
+
{
|
|
128
|
+
cleanupTls();
|
|
129
|
+
}
|
|
130
|
+
else if (reason == DLL_PROCESS_DETACH)
|
|
131
|
+
{
|
|
132
|
+
cleanupTls();
|
|
133
|
+
TlsFree(g_tlsiID_SC1);
|
|
134
|
+
TlsFree(g_tlsiID_SC2);
|
|
135
|
+
TlsFree(g_tlsiID_SC3);
|
|
136
|
+
}
|
|
137
|
+
return TRUE;
|
|
138
138
|
}
|
|
139
139
|
#endif
|
|
140
140
|
#endif //(_UNICODE && defined(_WIN32) && _MSC_VER)
|
|
141
|
-
|
|
142
|
-
|