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,178 @@
|
|
|
1
|
+
#ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_FIELDS_H
|
|
2
|
+
#define BZS_DB_PROTOCOL_TDAP_CLIENT_FIELDS_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 "field.h"
|
|
22
|
+
#include "table.h"
|
|
23
|
+
#include <boost/shared_ptr.hpp>
|
|
24
|
+
#include <stdio.h>
|
|
25
|
+
|
|
26
|
+
namespace bzs
|
|
27
|
+
{
|
|
28
|
+
namespace db
|
|
29
|
+
{
|
|
30
|
+
namespace protocol
|
|
31
|
+
{
|
|
32
|
+
namespace tdap
|
|
33
|
+
{
|
|
34
|
+
namespace client
|
|
35
|
+
{
|
|
36
|
+
|
|
37
|
+
/* copyable */
|
|
38
|
+
class fieldsBase
|
|
39
|
+
{
|
|
40
|
+
friend class multiRecordAlocatorImple;
|
|
41
|
+
friend class recordsetImple;
|
|
42
|
+
virtual unsigned char* ptr(int index) const = 0;
|
|
43
|
+
|
|
44
|
+
protected:
|
|
45
|
+
/** @cond INTERNAL */
|
|
46
|
+
fielddefs& m_fns;
|
|
47
|
+
bool m_invalidRecord;
|
|
48
|
+
virtual table* tbptr() const { return NULL; }
|
|
49
|
+
|
|
50
|
+
void throwIndexError(short index) const
|
|
51
|
+
{
|
|
52
|
+
if (tbptr())
|
|
53
|
+
{
|
|
54
|
+
tbptr()->setStat(STATUS_INVARID_FIELD_IDX);
|
|
55
|
+
nstable::throwError(_T("field access"), tbptr());
|
|
56
|
+
}
|
|
57
|
+
else
|
|
58
|
+
{
|
|
59
|
+
_TCHAR tmp[100];
|
|
60
|
+
_stprintf_s(tmp, 100, _T("field access index %d of %s"), index,
|
|
61
|
+
tbptr() ? tbptr()->tableDef()->tableName() : _T(""));
|
|
62
|
+
nstable::throwError(tmp, STATUS_INVARID_FIELD_IDX);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
explicit inline fieldsBase(fielddefs& fns)
|
|
66
|
+
: m_fns(fns), m_invalidRecord(false)
|
|
67
|
+
{
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
inline void setFielddefs(fielddefs& def) { m_fns = def; }
|
|
71
|
+
|
|
72
|
+
virtual void removeLastMemBlock(){};
|
|
73
|
+
|
|
74
|
+
virtual void setRecordData(unsigned char* ptr, size_t size,
|
|
75
|
+
short* endFieldIndex, bool owner = false){};
|
|
76
|
+
|
|
77
|
+
/** @endcond */
|
|
78
|
+
|
|
79
|
+
public:
|
|
80
|
+
virtual ~fieldsBase(){};
|
|
81
|
+
|
|
82
|
+
inline void setInvalidRecord(bool v) { m_invalidRecord = v; }
|
|
83
|
+
|
|
84
|
+
inline bool isInvalidRecord() const { return m_invalidRecord; }
|
|
85
|
+
|
|
86
|
+
inline field getFieldNoCheck(short index) const
|
|
87
|
+
{
|
|
88
|
+
return field(ptr((short)index), m_fns[(short)index], &m_fns);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
inline field operator[](short index) const
|
|
92
|
+
{
|
|
93
|
+
if (m_fns.checkIndex(index))
|
|
94
|
+
return field(ptr((short)index), m_fns[(short)index], &m_fns);
|
|
95
|
+
|
|
96
|
+
throwIndexError(index);
|
|
97
|
+
return field(NULL, dummyFd(), &m_fns);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
inline field operator[](const _TCHAR* name) const
|
|
101
|
+
{
|
|
102
|
+
int index = m_fns.indexByName(name);
|
|
103
|
+
return operator[](index);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
inline field operator[](const std::_tstring& name) const
|
|
107
|
+
{
|
|
108
|
+
return operator[](name.c_str());
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
inline size_t size() const { return m_fns.size(); }
|
|
112
|
+
|
|
113
|
+
inline field fd(short index) const { return operator[](index); }
|
|
114
|
+
|
|
115
|
+
inline field fd(const _TCHAR* name) const
|
|
116
|
+
{
|
|
117
|
+
int index = m_fns.indexByName(name);
|
|
118
|
+
return operator[](index);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
inline short indexByName(const _TCHAR* name) const
|
|
122
|
+
{
|
|
123
|
+
return m_fns.indexByName(name);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
inline const fielddefs* fieldDefs() const { return &m_fns; }
|
|
127
|
+
|
|
128
|
+
virtual void clear() = 0;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
typedef boost::shared_ptr<database> database_ptr;
|
|
132
|
+
typedef boost::shared_ptr<table> table_ptr;
|
|
133
|
+
typedef fieldsBase row;
|
|
134
|
+
typedef boost::shared_ptr<row> row_ptr;
|
|
135
|
+
|
|
136
|
+
/* copyable*/
|
|
137
|
+
class fields : public fieldsBase
|
|
138
|
+
{
|
|
139
|
+
table& m_tb;
|
|
140
|
+
|
|
141
|
+
inline unsigned char* ptr(int index) const
|
|
142
|
+
{
|
|
143
|
+
return (unsigned char*)m_tb.data();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
table* tbptr() const { return &m_tb; }
|
|
147
|
+
|
|
148
|
+
inline explicit fields() : fieldsBase(*((fielddefs*)0)), m_tb(*((table*)0))
|
|
149
|
+
{
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
public:
|
|
153
|
+
inline explicit fields(table& tb) : fieldsBase(*(tb.m_fddefs)), m_tb(tb) {}
|
|
154
|
+
|
|
155
|
+
inline explicit fields(table_ptr tb)
|
|
156
|
+
: fieldsBase(*((*tb).m_fddefs)), m_tb(*tb)
|
|
157
|
+
{
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
inline void clear() { m_tb.clearBuffer(); }
|
|
161
|
+
|
|
162
|
+
inline table& tb() const { return m_tb; }
|
|
163
|
+
|
|
164
|
+
inline short inproc_size() const { return m_tb.getCurProcFieldCount(); }
|
|
165
|
+
|
|
166
|
+
inline field inproc_fd(short index) const
|
|
167
|
+
{
|
|
168
|
+
return operator[](m_tb.getCurProcFieldIndex(index));
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
} // namespace client
|
|
173
|
+
} // namespace tdap
|
|
174
|
+
} // namespace protocol
|
|
175
|
+
} // namespace db
|
|
176
|
+
} // namespace bzs
|
|
177
|
+
|
|
178
|
+
#endif // BZS_DB_PROTOCOL_TDAP_CLIENT_FIELDS_H
|
|
@@ -16,9 +16,6 @@
|
|
|
16
16
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
17
|
02111-1307, USA.
|
|
18
18
|
================================================================= */
|
|
19
|
-
#include <bzs/env/tstring.h>
|
|
20
|
-
#pragma hdrstop
|
|
21
|
-
|
|
22
19
|
#include "fileDDF.h"
|
|
23
20
|
#include "nsDatabase.h"
|
|
24
21
|
|
|
@@ -35,12 +32,13 @@ namespace tdap
|
|
|
35
32
|
namespace client
|
|
36
33
|
{
|
|
37
34
|
|
|
38
|
-
fileDDF::fileDDF(nsdatabase
|
|
39
|
-
|
|
35
|
+
fileDDF::fileDDF(nsdatabase* pbe) : nstable(pbe)
|
|
36
|
+
{
|
|
37
|
+
m_keybuflen = 128;
|
|
40
38
|
}
|
|
41
39
|
|
|
42
|
-
fileDDF::~fileDDF()
|
|
43
|
-
|
|
40
|
+
fileDDF::~fileDDF()
|
|
41
|
+
{
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
void fileDDF::doOpen(const _TCHAR* Dir, char_td mode, const _TCHAR* OwnerName)
|
|
@@ -66,7 +64,8 @@ keylen_td fileDDF::writeKeyData()
|
|
|
66
64
|
keylen_td len = 2;
|
|
67
65
|
switch (m_keynum)
|
|
68
66
|
{
|
|
69
|
-
case 0:
|
|
67
|
+
case 0:
|
|
68
|
+
memcpy(&keybuf[0], &id, len);
|
|
70
69
|
break;
|
|
71
70
|
case 1:
|
|
72
71
|
len = 20;
|
|
@@ -90,7 +89,6 @@ void fileDDF::writeRecordData()
|
|
|
90
89
|
|
|
91
90
|
datbuf.flag = flag;
|
|
92
91
|
memset(datbuf.filler, 0, 9);
|
|
93
|
-
|
|
94
92
|
}
|
|
95
93
|
|
|
96
94
|
void fileDDF::onReadAfter()
|
|
@@ -101,12 +99,11 @@ void fileDDF::onReadAfter()
|
|
|
101
99
|
strncpy(filename, datbuf.filename, 64);
|
|
102
100
|
filename[64] = 0x00;
|
|
103
101
|
flag = datbuf.flag;
|
|
104
|
-
|
|
105
102
|
}
|
|
106
103
|
|
|
107
104
|
void fileDDF::createTable(const _TCHAR* fullpath)
|
|
108
105
|
{
|
|
109
|
-
fileSpec
|
|
106
|
+
fileSpec* fs;
|
|
110
107
|
fs = (fileSpec*)malloc(512);
|
|
111
108
|
memset(fs, 512, 0x00);
|
|
112
109
|
fs->recLen = 97;
|
|
@@ -129,8 +126,8 @@ void fileDDF::createTable(const _TCHAR* fullpath)
|
|
|
129
126
|
m_stat = nsdb()->stat();
|
|
130
127
|
}
|
|
131
128
|
|
|
132
|
-
}// namespace client
|
|
133
|
-
}// namespace tdap
|
|
134
|
-
}// namespace protocol
|
|
135
|
-
}// namespace db
|
|
136
|
-
}// namespace bzs
|
|
129
|
+
} // namespace client
|
|
130
|
+
} // namespace tdap
|
|
131
|
+
} // namespace protocol
|
|
132
|
+
} // namespace db
|
|
133
|
+
} // namespace bzs
|
|
@@ -31,8 +31,8 @@ namespace tdap
|
|
|
31
31
|
namespace client
|
|
32
32
|
{
|
|
33
33
|
|
|
34
|
-
#pragma
|
|
35
|
-
pragma_pack1
|
|
34
|
+
#pragma pack(push, 1)
|
|
35
|
+
pragma_pack1;
|
|
36
36
|
|
|
37
37
|
struct SFILEDDF
|
|
38
38
|
{
|
|
@@ -43,10 +43,8 @@ struct SFILEDDF
|
|
|
43
43
|
char filler[9];
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
#pragma
|
|
47
|
-
pragma_pop
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
#pragma pack(pop)
|
|
47
|
+
pragma_pop;
|
|
50
48
|
|
|
51
49
|
class fileDDF : public nstable
|
|
52
50
|
{
|
|
@@ -67,20 +65,16 @@ public:
|
|
|
67
65
|
char filename[65];
|
|
68
66
|
ushort_td flag;
|
|
69
67
|
char filler[9];
|
|
70
|
-
|
|
71
|
-
|
|
72
68
|
char keybuf[128];
|
|
73
69
|
|
|
74
|
-
explicit fileDDF(nsdatabase
|
|
70
|
+
explicit fileDDF(nsdatabase* pbe);
|
|
75
71
|
void createTable(const _TCHAR* fullpath);
|
|
76
72
|
using nstable::open;
|
|
77
|
-
|
|
78
|
-
|
|
79
73
|
};
|
|
80
74
|
|
|
81
|
-
}// namespace client
|
|
82
|
-
}// namespace tdap
|
|
83
|
-
}// namespace protocol
|
|
84
|
-
}// namespace db
|
|
85
|
-
}// namespace bzs
|
|
86
|
-
#endif//BZS_DB_PROTOCOL_TDAP_CLIENT_FILEDDF_H
|
|
75
|
+
} // namespace client
|
|
76
|
+
} // namespace tdap
|
|
77
|
+
} // namespace protocol
|
|
78
|
+
} // namespace db
|
|
79
|
+
} // namespace bzs
|
|
80
|
+
#endif // BZS_DB_PROTOCOL_TDAP_CLIENT_FILEDDF_H
|