transactd 1.1.2 → 1.2.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/CMakeLists.txt +37 -4
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/common/transactd_cl_common.cmake +0 -1
- data/build/common/transactd_common.cmake +26 -6
- data/build/swig/php/generate.cmake.in +58 -0
- data/build/swig/php/generate.cmd.in +41 -0
- data/build/swig/php/php.swg +155 -0
- data/build/swig/ruby/ruby.swg +38 -0
- data/build/swig/tdcl.i +133 -3
- data/build/tdclc/CMakeLists.txt +4 -1
- data/build/tdclc/tdclc_32.cbproj +1 -1
- data/build/tdclc/tdclc_64.cbproj +1 -1
- data/build/tdclcpp/CMakeLists.txt +1 -1
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +1 -4
- data/build/tdclcpp/tdclcpp_bcb_64.cbproj +0 -3
- data/build/tdclrb/CMakeLists.txt +1 -1
- data/build/tdclrb/GEM_VERSION +2 -2
- data/source/bzs/db/engine/mysql/IReadRecords.h +1 -1
- data/source/bzs/db/engine/mysql/bookmark.h +3 -3
- data/source/bzs/db/engine/mysql/database.cpp +95 -19
- data/source/bzs/db/engine/mysql/database.h +6 -6
- data/source/bzs/db/engine/mysql/mysqlInternal.h +43 -1
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +10 -8
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +1 -1
- data/source/bzs/db/protocol/tdap/btrDate.h +2 -2
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +15 -8
- data/source/bzs/db/protocol/tdap/client/dbDef.h +2 -2
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +4 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +0 -5
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +0 -4
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -484
- data/source/bzs/db/protocol/tdap/client/filter.h +696 -84
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +13 -3
- data/source/bzs/db/protocol/tdap/client/nsTable.h +12 -6
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +2 -1
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +1 -0
- data/source/bzs/db/protocol/tdap/client/table.cpp +519 -75
- data/source/bzs/db/protocol/tdap/client/table.h +49 -7
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +145 -124
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +39 -0
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +872 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +8 -8
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +7 -9
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +406 -195
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +64 -13
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +2 -1
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +35 -3
- data/source/bzs/db/protocol/tdap/tdapSchema.h +11 -3
- data/source/bzs/db/protocol/tdap/tdapcapi.h +63 -53
- data/source/bzs/env/crosscompile.h +8 -3
- data/source/bzs/example/connection_pool_c.cpp +1 -7
- data/source/bzs/example/useORM.cpp +585 -0
- data/source/bzs/rtl/exception.h +6 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +12 -7
- data/source/bzs/test/tdclphp/transactd_Test.php +1845 -0
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +325 -0
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +183 -0
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +212 -0
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +332 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +256 -1
- data/source/bzs/test/trdclengn/test_blob.cpp +327 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +485 -5
- data/source/global/tdclatl/QueryBase.cpp +231 -0
- data/source/global/tdclatl/QueryBase.h +96 -0
- data/source/global/tdclatl/Table.cpp +24 -0
- data/source/global/tdclatl/Table.h +2 -1
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/tdclatl.idl +88 -2
- metadata +16 -3
- data/bin/common/tdclc_32_1_1.dll +0 -0
- data/bin/common/tdclc_64_1_1.dll +0 -0
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
02111-1307, USA.
|
|
20
20
|
================================================================= */
|
|
21
21
|
#include "nsTable.h"
|
|
22
|
-
|
|
22
|
+
#include <vector>
|
|
23
23
|
namespace bzs
|
|
24
24
|
{
|
|
25
25
|
|
|
@@ -36,6 +36,7 @@ namespace client
|
|
|
36
36
|
|
|
37
37
|
class fields;
|
|
38
38
|
class database;
|
|
39
|
+
class queryBase;
|
|
39
40
|
#define null_str _T("")
|
|
40
41
|
|
|
41
42
|
#pragma warning(disable:4251)
|
|
@@ -46,11 +47,12 @@ class AGRPACK table : public nstable
|
|
|
46
47
|
friend class recordCache;
|
|
47
48
|
friend class database;
|
|
48
49
|
friend class filter;
|
|
50
|
+
|
|
49
51
|
struct tbimpl* m_impl;
|
|
50
52
|
tabledef* m_tableDef;
|
|
51
53
|
|
|
52
54
|
uchar_td charset() const ;
|
|
53
|
-
|
|
55
|
+
bool checkFindDirection(ushort_td op);
|
|
54
56
|
bool checkIndex(short index);
|
|
55
57
|
void getKeySpec(keySpec* ks, bool SpecifyKeyNum = false);
|
|
56
58
|
const bzs::db::blobHeader* getBlobHeader();
|
|
@@ -63,8 +65,9 @@ class AGRPACK table : public nstable
|
|
|
63
65
|
uint_td doGetWriteImageLen(); // orverride
|
|
64
66
|
void doUpdate(bool ncc = false); // orverride
|
|
65
67
|
ushort_td doCommitBulkInsert(bool autoCommit = false); // orverride
|
|
68
|
+
void doAbortBulkInsert(); // orverride
|
|
66
69
|
void doCreateIndex(bool SpecifyKeyNum = false); // orverride
|
|
67
|
-
uint_td doRecordCount(bool estimate, bool fromCurrent); // orverride
|
|
70
|
+
uint_td doRecordCount(bool estimate, bool fromCurrent, eFindType direction); // orverride
|
|
68
71
|
short_td doBtrvErr(HWND hWnd, _TCHAR* retbuf = NULL); // orverride
|
|
69
72
|
|
|
70
73
|
double getFVnumeric(short index);
|
|
@@ -72,6 +75,8 @@ class AGRPACK table : public nstable
|
|
|
72
75
|
void setFVDecimal(short index, double data);
|
|
73
76
|
void setFVNumeric(short index, double data);
|
|
74
77
|
void doFind( ushort_td op, bool notIncCurrent);
|
|
78
|
+
bool setSeekValueField(int row);
|
|
79
|
+
|
|
75
80
|
protected:
|
|
76
81
|
explicit table(nsdatabase *pbe); // Inheritance is impossible
|
|
77
82
|
virtual ~table();
|
|
@@ -102,14 +107,13 @@ protected:
|
|
|
102
107
|
|
|
103
108
|
virtual void doInit(tabledef* def, short filenum, bool regularDir);
|
|
104
109
|
|
|
105
|
-
virtual void onRecordCounting(size_t count, bool complate){};
|
|
110
|
+
virtual void onRecordCounting(size_t count, bool& complate){};
|
|
106
111
|
|
|
107
112
|
virtual void setNoUpdateTimeStamp(bool v) {};
|
|
108
113
|
|
|
109
114
|
|
|
110
|
-
|
|
111
115
|
public:
|
|
112
|
-
|
|
116
|
+
using nstable::eFindType;
|
|
113
117
|
|
|
114
118
|
inline const tabledef* tableDef() const {return m_tableDef;};
|
|
115
119
|
|
|
@@ -131,12 +135,13 @@ public:
|
|
|
131
135
|
void clearBuffer();
|
|
132
136
|
unsigned int getRecordHash();
|
|
133
137
|
void smartUpdate();
|
|
134
|
-
void find(eFindType type);
|
|
138
|
+
void find(eFindType type=findForword);
|
|
135
139
|
void findFirst();
|
|
136
140
|
void findLast();
|
|
137
141
|
void findNext(bool notIncCurrent = true);
|
|
138
142
|
void findPrev(bool notIncCurrent = true);
|
|
139
143
|
bookmark_td bookmarkFindCurrent() const;
|
|
144
|
+
void setQuery(const queryBase* query);
|
|
140
145
|
void setFilter(const _TCHAR* str, ushort_td rejectCount, ushort_td cacheCount);
|
|
141
146
|
const _TCHAR* filterStr();
|
|
142
147
|
short fieldNumByName(const _TCHAR* name);
|
|
@@ -207,9 +212,46 @@ public:
|
|
|
207
212
|
void setFV(short index, __int64 data);
|
|
208
213
|
void setFV(const _TCHAR* fieldName, __int64 data);
|
|
209
214
|
void* fieldPtr(short index);
|
|
215
|
+
void keyValueDescription(_TCHAR* buf, int bufsize);
|
|
216
|
+
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
class AGRPACK queryBase
|
|
221
|
+
{
|
|
222
|
+
friend class filter;
|
|
223
|
+
struct impl* m_impl;
|
|
210
224
|
|
|
225
|
+
const std::vector<std::_tstring>& getSelects() const;
|
|
226
|
+
const std::vector<std::_tstring>& getWheres() const;
|
|
227
|
+
const std::vector<std::_tstring>& getSeekKeyValues() const;
|
|
228
|
+
public:
|
|
229
|
+
queryBase();
|
|
230
|
+
virtual ~queryBase();
|
|
231
|
+
void reset();
|
|
232
|
+
void clearSeekKeyValues();
|
|
233
|
+
void clearSelectFields();
|
|
234
|
+
void addField(const _TCHAR* name);
|
|
235
|
+
void addLogic(const _TCHAR* name, const _TCHAR* logic, const _TCHAR* value);
|
|
236
|
+
void addLogic(const _TCHAR* combine, const _TCHAR* name, const _TCHAR* logic, const _TCHAR* value);
|
|
237
|
+
void addSeekKeyValue(const _TCHAR* value, bool reset=false);
|
|
238
|
+
queryBase& queryString(const _TCHAR* str);
|
|
239
|
+
queryBase& reject(int v);
|
|
240
|
+
queryBase& limit(int v);
|
|
241
|
+
queryBase& direction(table::eFindType v);
|
|
242
|
+
queryBase& all();
|
|
243
|
+
queryBase& optimize(bool v);
|
|
244
|
+
const _TCHAR* toString() const;
|
|
245
|
+
table::eFindType getDirection() const;
|
|
246
|
+
int getReject()const;
|
|
247
|
+
int getLimit()const;
|
|
248
|
+
bool isAll()const;
|
|
249
|
+
bool isOptimize()const;
|
|
250
|
+
void release();
|
|
251
|
+
static queryBase* create();
|
|
211
252
|
};
|
|
212
253
|
|
|
254
|
+
|
|
213
255
|
#pragma warning(default:4251)
|
|
214
256
|
|
|
215
257
|
|