transactd 1.0.1
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 +7 -0
- data/BUILD_UNIX-JA +174 -0
- data/BUILD_WIN-JA +256 -0
- data/CMakeLists.txt +96 -0
- data/COPYING +339 -0
- data/README +406 -0
- data/README-JA +424 -0
- data/bin/common/tdclc_32_1_0.dll +0 -0
- data/bin/common/tdclc_64_1_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +73 -0
- data/build/common/copyifgreater.cmd +30 -0
- data/build/common/copyifgreater.js +290 -0
- data/build/common/get_boost_libs.cmake +106 -0
- data/build/common/get_ruby_path.cmake +115 -0
- data/build/common/options.cmake +127 -0
- data/build/common/smart_install.cmake +263 -0
- data/build/common/system.cmake +122 -0
- data/build/common/transactd.rc.in +52 -0
- data/build/common/transactd_cl_common.cmake +101 -0
- data/build/common/transactd_cl_output.cmake +93 -0
- data/build/common/transactd_common.cmake +237 -0
- data/build/common/transactd_required.cmake +28 -0
- data/build/swig/ruby/generate.cmake.in +35 -0
- data/build/swig/ruby/generate.cmd.in +19 -0
- data/build/swig/ruby/ruby.swg +101 -0
- data/build/swig/tdcl.i +188 -0
- data/build/tdclc/BUILDNUMBER.txt +1 -0
- data/build/tdclc/CMakeLists.txt +170 -0
- data/build/tdclc/tdclc_32.cbproj +181 -0
- data/build/tdclc/tdclc_64.cbproj +205 -0
- data/build/tdclcpp/BUILDNUMBER.txt +1 -0
- data/build/tdclcpp/CMakeLists.txt +142 -0
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +239 -0
- data/build/tdclcpp/tdclcpp_bcb_64.cbproj +304 -0
- data/build/tdclrb/BUILDNUMBER.txt +1 -0
- data/build/tdclrb/CMakeLists.txt +258 -0
- data/build/tdclrb/GEM_VERSION +3 -0
- data/build/tdclrb/bldgem/extconf.rb +123 -0
- data/build/tdclrb/gem/INSTALLLOG.win32 +9 -0
- data/build/tdclrb/gem/Makefile.win32-VS +65 -0
- data/build/tdclrb/gem/Makefile.win32-prebuilt +48 -0
- data/build/tdclrb/gem/detect.rb +31 -0
- data/build/tdclrb/gem/helper.rb +113 -0
- data/build/tdclrb/gem/transactd.rb +22 -0
- data/build/tdclrb/gem_output.cmake +44 -0
- data/source/bzs/db/IBlobBuffer.h +51 -0
- data/source/bzs/db/blobBuffer.h +177 -0
- data/source/bzs/db/blobStructs.h +85 -0
- data/source/bzs/db/engine/mysql/IReadRecords.h +52 -0
- data/source/bzs/db/engine/mysql/bookmark.h +195 -0
- data/source/bzs/db/engine/mysql/database.cpp +1882 -0
- data/source/bzs/db/engine/mysql/database.h +465 -0
- data/source/bzs/db/engine/mysql/dbManager.cpp +303 -0
- data/source/bzs/db/engine/mysql/dbManager.h +143 -0
- data/source/bzs/db/engine/mysql/errorMessage.cpp +75 -0
- data/source/bzs/db/engine/mysql/errorMessage.h +43 -0
- data/source/bzs/db/engine/mysql/fieldAccess.h +158 -0
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +349 -0
- data/source/bzs/db/engine/mysql/mydebuglog.h +89 -0
- data/source/bzs/db/engine/mysql/mysqlInternal.h +171 -0
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +169 -0
- data/source/bzs/db/engine/mysql/mysqlThd.h +35 -0
- data/source/bzs/db/engine/mysql/percentageKey.h +260 -0
- data/source/bzs/db/protocol/ICommandExecuter.h +49 -0
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +689 -0
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +228 -0
- data/source/bzs/db/protocol/tdap/btrDate.cpp +437 -0
- data/source/bzs/db/protocol/tdap/btrDate.h +227 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +127 -0
- data/source/bzs/db/protocol/tdap/client/client.cpp +106 -0
- data/source/bzs/db/protocol/tdap/client/client.h +292 -0
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +144 -0
- data/source/bzs/db/protocol/tdap/client/connMgr.h +82 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +863 -0
- data/source/bzs/db/protocol/tdap/client/database.h +118 -0
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +100 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +1640 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.h +135 -0
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +434 -0
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +92 -0
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +98 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +174 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +91 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +140 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +86 -0
- data/source/bzs/db/protocol/tdap/client/filter.cpp +527 -0
- data/source/bzs/db/protocol/tdap/client/filter.h +154 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +137 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +84 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +724 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +123 -0
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +899 -0
- data/source/bzs/db/protocol/tdap/client/nsTable.h +199 -0
- data/source/bzs/db/protocol/tdap/client/request.h +198 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +58 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.h +56 -0
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +574 -0
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +53 -0
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +627 -0
- data/source/bzs/db/protocol/tdap/client/table.cpp +2613 -0
- data/source/bzs/db/protocol/tdap/client/table.h +221 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +1096 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +179 -0
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +40 -0
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +11 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +500 -0
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +184 -0
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +60 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +284 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +53 -0
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +383 -0
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +106 -0
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +680 -0
- data/source/bzs/db/protocol/tdap/mysql/request.h +202 -0
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1020 -0
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +141 -0
- data/source/bzs/db/protocol/tdap/tdapRequest.h +190 -0
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +295 -0
- data/source/bzs/db/protocol/tdap/tdapSchema.h +558 -0
- data/source/bzs/db/protocol/tdap/tdapcapi.h +423 -0
- data/source/bzs/db/transactd/appBuilderImple.h +55 -0
- data/source/bzs/db/transactd/appModule.cpp +183 -0
- data/source/bzs/db/transactd/appModule.h +80 -0
- data/source/bzs/db/transactd/connManager.cpp +201 -0
- data/source/bzs/db/transactd/connManager.h +60 -0
- data/source/bzs/db/transactd/connectionRecord.h +69 -0
- data/source/bzs/db/transactd/transactd.cpp +325 -0
- data/source/bzs/env/compiler.h +135 -0
- data/source/bzs/env/crosscompile.cpp +130 -0
- data/source/bzs/env/crosscompile.h +150 -0
- data/source/bzs/env/fileopen.h +36 -0
- data/source/bzs/env/mbcswchrLinux.cpp +40 -0
- data/source/bzs/env/mbcswchrLinux.h +88 -0
- data/source/bzs/env/tstring.h +183 -0
- data/source/bzs/example/changeSchema.cpp +117 -0
- data/source/bzs/example/changeSchema_c.cpp +78 -0
- data/source/bzs/example/connection_pool_c.cpp +171 -0
- data/source/bzs/example/createDatabase.cpp +305 -0
- data/source/bzs/example/createDatabase_c.cpp +202 -0
- data/source/bzs/example/deleteRecords.cpp +87 -0
- data/source/bzs/example/deleteRecords_c.cpp +57 -0
- data/source/bzs/example/dropDatabase.cpp +59 -0
- data/source/bzs/example/dropDatabase_c.cpp +34 -0
- data/source/bzs/example/insertRecords.cpp +212 -0
- data/source/bzs/example/insertRecords_c.cpp +153 -0
- data/source/bzs/example/readRecords.cpp +141 -0
- data/source/bzs/example/readRecords_c.cpp +107 -0
- data/source/bzs/example/updateRecords.cpp +99 -0
- data/source/bzs/example/updateRecords_c.cpp +71 -0
- data/source/bzs/example/update_with_transaction.cpp +104 -0
- data/source/bzs/example/update_with_transaction_c.cpp +80 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +226 -0
- data/source/bzs/netsvc/client/tcpClient.h +489 -0
- data/source/bzs/netsvc/server/IAppModule.h +94 -0
- data/source/bzs/netsvc/server/iserver.h +65 -0
- data/source/bzs/netsvc/server/serverCpt.cpp +522 -0
- data/source/bzs/netsvc/server/serverCpt.h +88 -0
- data/source/bzs/netsvc/server/serverPipe.cpp +705 -0
- data/source/bzs/netsvc/server/serverPipe.h +96 -0
- data/source/bzs/netsvc/server/serverTpool.cpp +416 -0
- data/source/bzs/netsvc/server/serverTpool.h +84 -0
- data/source/bzs/rtl/benchmark.cpp +96 -0
- data/source/bzs/rtl/benchmark.h +65 -0
- data/source/bzs/rtl/datetime.cpp +375 -0
- data/source/bzs/rtl/datetime.h +53 -0
- data/source/bzs/rtl/debuglog.cpp +106 -0
- data/source/bzs/rtl/debuglog.h +97 -0
- data/source/bzs/rtl/exception.h +116 -0
- data/source/bzs/rtl/stl_uty.cpp +35 -0
- data/source/bzs/rtl/stl_uty.h +29 -0
- data/source/bzs/rtl/stringBuffers.cpp +101 -0
- data/source/bzs/rtl/stringBuffers.h +58 -0
- data/source/bzs/rtl/strtrim.cpp +135 -0
- data/source/bzs/rtl/strtrim.h +46 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +445 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +375 -0
- data/source/bzs/test/tdclrb/prepare.rb +226 -0
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +172 -0
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +208 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +1536 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +430 -0
- data/source/bzs/test/transactdBench/transactdBench2.cpp +342 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +2030 -0
- data/source/global/tdclatl/Database.cpp +503 -0
- data/source/global/tdclatl/Database.h +139 -0
- data/source/global/tdclatl/DbDef.cpp +242 -0
- data/source/global/tdclatl/DbDef.h +79 -0
- data/source/global/tdclatl/Field.cpp +92 -0
- data/source/global/tdclatl/Field.h +59 -0
- data/source/global/tdclatl/FieldDef.cpp +238 -0
- data/source/global/tdclatl/FieldDef.h +87 -0
- data/source/global/tdclatl/Flags.cpp +111 -0
- data/source/global/tdclatl/Flags.h +55 -0
- data/source/global/tdclatl/KeyDef.cpp +51 -0
- data/source/global/tdclatl/KeyDef.h +55 -0
- data/source/global/tdclatl/KeySegment.cpp +55 -0
- data/source/global/tdclatl/Table.cpp +600 -0
- data/source/global/tdclatl/Table.h +144 -0
- data/source/global/tdclatl/TableDef.cpp +291 -0
- data/source/global/tdclatl/TableDef.h +86 -0
- data/source/global/tdclatl/TdVersion.cpp +74 -0
- data/source/global/tdclatl/TdVersion.h +54 -0
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +113 -0
- data/source/global/tdclatl/dllmain.cpp +30 -0
- data/source/global/tdclatl/dllmain.h +27 -0
- data/source/global/tdclatl/keySegment.h +57 -0
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.cpp +2 -0
- data/source/global/tdclatl/stdafx.h +25 -0
- data/source/global/tdclatl/targetver.h +4 -0
- data/source/global/tdclatl/tdclatl.cpp +68 -0
- data/source/global/tdclatl/tdclatl.def +10 -0
- data/source/global/tdclatl/tdclatl.idl +1035 -0
- data/source/linux/charsetConvert.h +112 -0
- data/source/linux/linuxTypes.h +33 -0
- data/source/linux/tchar.h +428 -0
- data/transactd.gemspec +97 -0
- metadata +267 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
#ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_NSTABLE_H
|
|
2
|
+
#define BZS_DB_PROTOCOL_TDAP_CLIENT_NSTABLE_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
|
+
|
|
22
|
+
#include <bzs/env/tstring.h>
|
|
23
|
+
#include <bzs/db/protocol/tdap/tdapcapi.h>
|
|
24
|
+
#include <bzs/db/protocol/tdap/tdapSchema.h>
|
|
25
|
+
#include <bzs/rtl/exception.h>
|
|
26
|
+
|
|
27
|
+
namespace bzs
|
|
28
|
+
{
|
|
29
|
+
namespace db
|
|
30
|
+
{
|
|
31
|
+
namespace protocol
|
|
32
|
+
{
|
|
33
|
+
namespace tdap
|
|
34
|
+
{
|
|
35
|
+
namespace client
|
|
36
|
+
{
|
|
37
|
+
|
|
38
|
+
class nsdatabase;
|
|
39
|
+
class nstable;
|
|
40
|
+
class bulkInsert;
|
|
41
|
+
|
|
42
|
+
#define BULKBUFSIZE USHRT_MAX-1000
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class AGRPACK nstable
|
|
47
|
+
{
|
|
48
|
+
friend class nsdatabase; // for destroy()
|
|
49
|
+
public:
|
|
50
|
+
enum eUpdateType{changeCurrentCc,changeCurrentNcc,changeInKey};
|
|
51
|
+
static const bool inkey = true;
|
|
52
|
+
private:
|
|
53
|
+
struct nstimpl* m_impl;
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
nstable(const nstable&);
|
|
57
|
+
const nstable& operator = (const nstable&);
|
|
58
|
+
void doUpdate(eUpdateType type);
|
|
59
|
+
ushort_td doInsert(bool ncc);
|
|
60
|
+
static TCHAR* getErrorMessage(int errorCode, _TCHAR* buf, size_t size);
|
|
61
|
+
|
|
62
|
+
protected:
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
ushort_td m_op;
|
|
66
|
+
void* m_pdata;
|
|
67
|
+
uint_td m_buflen;
|
|
68
|
+
uint_td m_datalen;
|
|
69
|
+
void* m_keybuf;
|
|
70
|
+
keylen_td m_keybuflen;
|
|
71
|
+
keylen_td m_keylen;
|
|
72
|
+
short_td m_stat;
|
|
73
|
+
char_td m_keynum;
|
|
74
|
+
|
|
75
|
+
union
|
|
76
|
+
{
|
|
77
|
+
struct
|
|
78
|
+
{
|
|
79
|
+
uchar_td m_read : 1;
|
|
80
|
+
uchar_td m_write : 1;
|
|
81
|
+
uchar_td m_insart : 1;
|
|
82
|
+
uchar_td m_delete : 1;
|
|
83
|
+
};
|
|
84
|
+
uchar_td m_curd;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
virtual ~nstable();
|
|
88
|
+
const _TCHAR* uri() const ;
|
|
89
|
+
const uchar_td* posblk() const ;
|
|
90
|
+
void setIsOpen(bool v);
|
|
91
|
+
nsdatabase* nsdb() const ;
|
|
92
|
+
bulkInsert* bulkIns() const ;
|
|
93
|
+
virtual bool isUniqeKey(char_td keynum){return false;}//for chacek updates deletes at key
|
|
94
|
+
virtual void writeRecordData()=0;
|
|
95
|
+
virtual int onInsertBefore() {writeRecordData();return 0;};
|
|
96
|
+
virtual void onInsertAfter(int beforeResult);
|
|
97
|
+
virtual bool onUpdateCheck(eUpdateType type) {return true;};
|
|
98
|
+
virtual int onUpdateBefore() {writeRecordData();return 0;};
|
|
99
|
+
virtual void onUpdateAfter(int beforeResult) {};
|
|
100
|
+
virtual bool onDeleteCheck(bool inkey) {return true;};
|
|
101
|
+
virtual void doDel(bool inkey);
|
|
102
|
+
virtual keylen_td writeKeyData(){return 0;};
|
|
103
|
+
virtual void onReadAfter()=0;
|
|
104
|
+
virtual uint_td doGetWriteImageLen() {return m_buflen;};
|
|
105
|
+
virtual void doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownername);
|
|
106
|
+
virtual void doClose();
|
|
107
|
+
virtual void doCreateIndex(bool specifyKeyNum);
|
|
108
|
+
virtual uint_td doRecordCount(bool estimate, bool fromCurrent);
|
|
109
|
+
virtual short_td doBtrvErr(HWND hWnd, _TCHAR* retbuf);
|
|
110
|
+
virtual ushort_td doCommitBulkInsert(bool autoCommit);
|
|
111
|
+
inline void open(const _TCHAR* uri, char_td mode = 0, const _TCHAR* ownerName = NULL) {
|
|
112
|
+
doOpen(uri, mode, ownerName);}
|
|
113
|
+
|
|
114
|
+
/*
|
|
115
|
+
This method is ignore refarence count of nstable and force delete.
|
|
116
|
+
Use in nsdatabase::reset()
|
|
117
|
+
*/
|
|
118
|
+
void destroy();
|
|
119
|
+
void setShared();
|
|
120
|
+
|
|
121
|
+
public:
|
|
122
|
+
explicit nstable(nsdatabase *pbe);
|
|
123
|
+
void addref(void);
|
|
124
|
+
void release();
|
|
125
|
+
int refCount() const;
|
|
126
|
+
|
|
127
|
+
short tableid() const ;
|
|
128
|
+
void setTableid(short v);
|
|
129
|
+
bool isOpen() const;
|
|
130
|
+
inline void setAccessRights(unsigned char curd) {m_curd = curd;};
|
|
131
|
+
inline const void* data() const {return m_pdata;}
|
|
132
|
+
inline void setData(void* v) {m_pdata = v;}
|
|
133
|
+
inline uint_td buflen() const {return m_buflen;}
|
|
134
|
+
inline void setBuflen(uint_td v) {m_buflen = v;}
|
|
135
|
+
inline uint_td datalen() const {return m_datalen;}
|
|
136
|
+
inline short_td stat() const {return m_stat;}
|
|
137
|
+
inline void setStat(short_td v) {m_stat = v;}
|
|
138
|
+
inline char_td keyNum() const {return m_keynum;}
|
|
139
|
+
inline void setKeyNum(char_td v) {m_keynum = v;}
|
|
140
|
+
inline bool canRead() const {return (bool)m_read;}
|
|
141
|
+
inline bool canWrite() const {return (bool)m_write;}
|
|
142
|
+
inline bool canInsert() const {return (bool)m_insart;}
|
|
143
|
+
inline bool canDelete() const {return (bool)m_delete;}
|
|
144
|
+
inline uint_td getWriteImageLen() {return doGetWriteImageLen();};
|
|
145
|
+
inline void close() {doClose();}
|
|
146
|
+
inline void update(eUpdateType type = changeCurrentCc) {doUpdate(type);}
|
|
147
|
+
inline void del(bool inkey=false) {doDel(inkey);}
|
|
148
|
+
inline ushort_td insert(bool ncc = false) {return doInsert(ncc);};
|
|
149
|
+
inline void createIndex(bool specifyKeyNum = false) {doCreateIndex(specifyKeyNum);}
|
|
150
|
+
void dropIndex(bool norenumber = false);
|
|
151
|
+
inline uint_td recordCount(bool estimate = true, bool fromCurrent = false) {return doRecordCount(estimate, fromCurrent);}
|
|
152
|
+
inline short_td tdapErr(HWND hWnd, _TCHAR* retbuf = NULL) {return doBtrvErr(hWnd, retbuf);}
|
|
153
|
+
|
|
154
|
+
void beginBulkInsert(int maxBuflen);
|
|
155
|
+
void abortBulkInsert();
|
|
156
|
+
inline ushort_td commitBulkInsert(bool autoCommit = false) {
|
|
157
|
+
return doCommitBulkInsert(autoCommit);}
|
|
158
|
+
void tdap(ushort_td op);
|
|
159
|
+
void seekFirst(ushort_td lockBias = 0);
|
|
160
|
+
void seekLast(ushort_td lockBias = 0);
|
|
161
|
+
void seekPrev(ushort_td lockBias = 0);
|
|
162
|
+
void seekNext(ushort_td lockBias = 0);
|
|
163
|
+
void seek(ushort_td lockBias = 0);
|
|
164
|
+
void seekGreater(bool orEqual, ushort_td lockBias = 0);
|
|
165
|
+
void seekLessThan(bool orEqual, ushort_td lockBias = 0);
|
|
166
|
+
void stepFirst(ushort_td lockBias = 0);
|
|
167
|
+
void stepLast(ushort_td lockBias = 0);
|
|
168
|
+
void stepPrev(ushort_td lockBias = 0);
|
|
169
|
+
void stepNext(ushort_td lockBias = 0);
|
|
170
|
+
bookmark_td bookmark();
|
|
171
|
+
void seekByBookmark(bookmark_td bm, ushort_td lockBias = 0);
|
|
172
|
+
void seekByBookmark();
|
|
173
|
+
percentage_td getPercentage();
|
|
174
|
+
percentage_td getPercentage(bookmark_td bm);
|
|
175
|
+
void seekByPercentage();
|
|
176
|
+
void seekByPercentage(percentage_td pc);
|
|
177
|
+
void setOwnerName(const _TCHAR* name , char_td enctype = 0);
|
|
178
|
+
void clearOwnerName();
|
|
179
|
+
ushort_td recordLength();
|
|
180
|
+
void stats(void* databuffer, uint_td buflen, bool estimate = true);
|
|
181
|
+
void unlock(bookmark_td bm = 0);
|
|
182
|
+
static _TCHAR* getFileName(const _TCHAR* uri, _TCHAR* filename);
|
|
183
|
+
static short_td tdapErr(HWND hWnd, short_td status, const _TCHAR* tableName = NULL,
|
|
184
|
+
_TCHAR* retbuf = NULL);
|
|
185
|
+
static void throwError(const _TCHAR* caption, short statusCode);
|
|
186
|
+
static _TCHAR* getDirURI(const _TCHAR* uri, _TCHAR* retbuf);
|
|
187
|
+
static bool existsFile(const _TCHAR* filename);
|
|
188
|
+
static bool test(nstable* p);
|
|
189
|
+
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
}// namespace client
|
|
194
|
+
}// namespace tdap
|
|
195
|
+
}// namespace protocol
|
|
196
|
+
}// namespace db
|
|
197
|
+
}// namespace bzs
|
|
198
|
+
|
|
199
|
+
#endif //BZS_DB_PROTOCOL_TDAP_CLIENT_NSTABLE_H
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
#ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_REQUSET_H
|
|
2
|
+
#define BZS_DB_PROTOCOL_TDAP_CLIENT_REQUSET_H
|
|
3
|
+
/*=================================================================
|
|
4
|
+
Copyright (C) 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
|
+
|
|
22
|
+
#include <bzs/db/protocol/tdap/tdapRequest.h>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
namespace bzs
|
|
27
|
+
{
|
|
28
|
+
namespace netsvc{namespace client{class connection;}}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
namespace db
|
|
32
|
+
{
|
|
33
|
+
namespace engine{namespace mysql{class table;}}
|
|
34
|
+
|
|
35
|
+
namespace protocol
|
|
36
|
+
{
|
|
37
|
+
namespace tdap
|
|
38
|
+
{
|
|
39
|
+
namespace client
|
|
40
|
+
{
|
|
41
|
+
|
|
42
|
+
class request : public bzs::db::protocol::tdap::request
|
|
43
|
+
{
|
|
44
|
+
public:
|
|
45
|
+
clientID* cid;
|
|
46
|
+
|
|
47
|
+
request():bzs::db::protocol::tdap::request()
|
|
48
|
+
,cid(NULL){};
|
|
49
|
+
|
|
50
|
+
inline void parse(const char* p)
|
|
51
|
+
{
|
|
52
|
+
p += sizeof(unsigned int);
|
|
53
|
+
paramMask = *((uchar_td*)p);
|
|
54
|
+
p += sizeof(uchar_td);
|
|
55
|
+
op = *((ushort_td*)p);
|
|
56
|
+
p += sizeof(ushort_td);
|
|
57
|
+
|
|
58
|
+
if (P_MASK_POSBLK & paramMask)
|
|
59
|
+
{
|
|
60
|
+
memcpy(pbk, p, POSBLK_SIZE);
|
|
61
|
+
p += POSBLK_SIZE;
|
|
62
|
+
}
|
|
63
|
+
if (P_MASK_DATALEN & paramMask)
|
|
64
|
+
{
|
|
65
|
+
uint_td tmp = *((uint_td*)p);
|
|
66
|
+
memset(data, 0, *datalen);
|
|
67
|
+
if (*datalen < tmp)
|
|
68
|
+
result = STATUS_BUFFERTOOSMALL;
|
|
69
|
+
else
|
|
70
|
+
*datalen = tmp;
|
|
71
|
+
p += sizeof(uint_td);
|
|
72
|
+
}
|
|
73
|
+
if (P_MASK_EX_SENDLEN & paramMask)
|
|
74
|
+
{
|
|
75
|
+
memcpy(data, p, (*(ushort_td*)p));
|
|
76
|
+
p += (*(ushort_td*)p);
|
|
77
|
+
|
|
78
|
+
}
|
|
79
|
+
else if (P_MASK_DATA & paramMask)
|
|
80
|
+
{
|
|
81
|
+
memcpy(data, p, *datalen);
|
|
82
|
+
p += *datalen;
|
|
83
|
+
}
|
|
84
|
+
if (P_MASK_KEYBUF & paramMask)
|
|
85
|
+
{
|
|
86
|
+
if (keylen < *((keylen_td*)p))
|
|
87
|
+
{
|
|
88
|
+
result = STATUS_KEYBUFFERTOOSMALL;
|
|
89
|
+
return ;
|
|
90
|
+
}
|
|
91
|
+
memset(keybuf, 0, keylen);
|
|
92
|
+
keylen = *((keylen_td*)p);
|
|
93
|
+
p += sizeof(keylen_td);
|
|
94
|
+
memcpy(keybuf, p, keylen);
|
|
95
|
+
p += keylen;
|
|
96
|
+
}
|
|
97
|
+
if (P_MASK_KEYNUM & paramMask)
|
|
98
|
+
{
|
|
99
|
+
keyNum = *((char_td*)p);
|
|
100
|
+
p += sizeof(char_td);
|
|
101
|
+
}
|
|
102
|
+
if (paramMask & P_MASK_BLOBBODY)
|
|
103
|
+
{
|
|
104
|
+
blobHeader = (const bzs::db::blobHeader*)p;
|
|
105
|
+
if (blobHeader->rows)
|
|
106
|
+
blobHeader->resetCur();
|
|
107
|
+
}
|
|
108
|
+
else
|
|
109
|
+
blobHeader = NULL;
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
inline unsigned int serialize(char* buf)
|
|
113
|
+
{
|
|
114
|
+
char* p = buf;
|
|
115
|
+
unsigned int totallen = sizeof(unsigned int) + sizeof(uchar_td)
|
|
116
|
+
+ sizeof(ushort_td) + CLIENTID_SIZE;
|
|
117
|
+
if (P_MASK_POSBLK & paramMask)
|
|
118
|
+
totallen += POSBLK_SIZE;
|
|
119
|
+
|
|
120
|
+
if (P_MASK_EX_SENDLEN & paramMask)
|
|
121
|
+
totallen += *((ushort_td*)data);
|
|
122
|
+
else if (P_MASK_DATA & paramMask)
|
|
123
|
+
totallen += *datalen;
|
|
124
|
+
|
|
125
|
+
if (P_MASK_DATALEN & paramMask)
|
|
126
|
+
totallen += sizeof(uint_td);
|
|
127
|
+
if (P_MASK_KEYBUF & paramMask)
|
|
128
|
+
totallen += keylen+sizeof(keylen_td) + 1;//+1 is null terminate byte
|
|
129
|
+
if (P_MASK_KEYNUM & paramMask)
|
|
130
|
+
totallen += sizeof(char_td);
|
|
131
|
+
memcpy(p, &totallen, sizeof(unsigned int));
|
|
132
|
+
p += sizeof(unsigned int);
|
|
133
|
+
|
|
134
|
+
memcpy(p, ¶mMask, sizeof(uchar_td));
|
|
135
|
+
p += sizeof(uchar_td);
|
|
136
|
+
|
|
137
|
+
memcpy(p, &op, sizeof(ushort_td));
|
|
138
|
+
p += sizeof(ushort_td);
|
|
139
|
+
|
|
140
|
+
if (P_MASK_POSBLK & paramMask)
|
|
141
|
+
{
|
|
142
|
+
memcpy(p, pbk, POSBLK_SIZE);
|
|
143
|
+
p += POSBLK_SIZE;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if (P_MASK_DATALEN & paramMask)
|
|
147
|
+
{
|
|
148
|
+
memcpy(p, datalen, sizeof(uint_td));
|
|
149
|
+
p += sizeof(uint_td);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (P_MASK_EX_SENDLEN & paramMask)
|
|
153
|
+
{
|
|
154
|
+
memcpy(p, data, *((ushort_td*)data));
|
|
155
|
+
p += *((ushort_td*)data);
|
|
156
|
+
}
|
|
157
|
+
else if (P_MASK_DATA & paramMask)
|
|
158
|
+
{
|
|
159
|
+
memcpy(p, data, *datalen);
|
|
160
|
+
p += *datalen;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (P_MASK_KEYBUF & paramMask)
|
|
164
|
+
{
|
|
165
|
+
memcpy(p, &keylen, sizeof(keylen_td));
|
|
166
|
+
p += sizeof(keylen_td);
|
|
167
|
+
|
|
168
|
+
memcpy(p, keybuf, keylen);
|
|
169
|
+
p += keylen;
|
|
170
|
+
*p = 0x00;
|
|
171
|
+
++p;
|
|
172
|
+
}
|
|
173
|
+
if (P_MASK_KEYNUM & paramMask)
|
|
174
|
+
{
|
|
175
|
+
memcpy(p, &keyNum, sizeof(char_td));
|
|
176
|
+
p += sizeof(char_td);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
memcpy(p, &cid->id, CLIENTID_SIZE);
|
|
180
|
+
p += CLIENTID_SIZE;
|
|
181
|
+
|
|
182
|
+
return (unsigned int)(p - buf);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
}//namespace client
|
|
192
|
+
}//namespace protocol
|
|
193
|
+
}//namespace tdap
|
|
194
|
+
}//namespace db
|
|
195
|
+
}//namespace bzs
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
#endif //BZS_DB_PROTOCOL_TDAP_CLIENT_REQUSET_H
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*=================================================================
|
|
2
|
+
Copyright (C) 2012 2013 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
|
+
#pragma hdrstop
|
|
20
|
+
#include "sharedData.h"
|
|
21
|
+
|
|
22
|
+
#pragma package(smart_init)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
namespace bzs
|
|
26
|
+
{
|
|
27
|
+
namespace db
|
|
28
|
+
{
|
|
29
|
+
namespace protocol
|
|
30
|
+
{
|
|
31
|
+
namespace tdap
|
|
32
|
+
{
|
|
33
|
+
namespace client
|
|
34
|
+
{
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
static nsdatabase* g_engins[MAX_BTRENGIN]={0};
|
|
38
|
+
|
|
39
|
+
nsdatabase** enginsInternal()
|
|
40
|
+
{
|
|
41
|
+
return g_engins;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
#ifdef ARBTREGN_SHARED_DLL
|
|
45
|
+
nsdatabase** enginsShared()
|
|
46
|
+
{
|
|
47
|
+
return g_engins;
|
|
48
|
+
}
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
EnginsFunc engins=enginsInternal;
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
}//namespace client
|
|
55
|
+
}//namespace tdap
|
|
56
|
+
}//namespace protocol
|
|
57
|
+
}//namespace db
|
|
58
|
+
}//namespace bzs
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
|
|
2
|
+
#define BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
|
|
3
|
+
/*=================================================================
|
|
4
|
+
Copyright (C) 2012 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 <bzs/env/compiler.h>
|
|
22
|
+
|
|
23
|
+
namespace bzs
|
|
24
|
+
{
|
|
25
|
+
namespace db
|
|
26
|
+
{
|
|
27
|
+
namespace protocol
|
|
28
|
+
{
|
|
29
|
+
namespace tdap
|
|
30
|
+
{
|
|
31
|
+
namespace client
|
|
32
|
+
{
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
#define MAX_BTRENGIN 50
|
|
36
|
+
|
|
37
|
+
class nsdatabase;
|
|
38
|
+
typedef nsdatabase** (*EnginsFunc)();
|
|
39
|
+
|
|
40
|
+
#ifdef ARBTREGN_PKG
|
|
41
|
+
PACKAGE void registEnginsPtr(EnginsFunc func);//If use shared dll then you need Call this function. Implemant at trdclengne
|
|
42
|
+
#else
|
|
43
|
+
PACKAGE_IMPORT void registEnginsPtr(EnginsFunc func);
|
|
44
|
+
#ifdef ARBTREGN_SHARED_DLL
|
|
45
|
+
PACKAGE nsdatabase** enginsShared();
|
|
46
|
+
#else
|
|
47
|
+
PACKAGE_IMPORT nsdatabase** enginsShared(); //Implemant at ARBtEgn_Shared.dll
|
|
48
|
+
#endif
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
}//namespace client
|
|
52
|
+
}//namespace tdap
|
|
53
|
+
}//namespace protocol
|
|
54
|
+
}//namespace db
|
|
55
|
+
}//namespace bzs
|
|
56
|
+
#endif//BZS_DB_PROTOCOL_TDAP_CLIENT_SHAREDDATA_H
|