transactd 2.4.5 → 3.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/CMakeLists.txt +1 -1
- data/README-JA.md +52 -529
- data/README.md +52 -523
- data/bin/common/tdclc_32_3_0.dll +0 -0
- data/bin/common/tdclc_64_3_0.dll +0 -0
- data/build/common/system.cmake +2 -1
- data/build/common/transactd_cl_common.cmake +3 -6
- data/build/swig/ruby/ruby.swg +85 -28
- data/build/swig/ruby/tdclrb_wrap.cpp +3195 -1578
- data/build/swig/tdcl.i +161 -5
- data/build/tdclc/CMakeLists.txt +1 -0
- data/build/tdclc/tdclc.cbproj +7 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +2 -5
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/blobStructs.h +1 -1
- data/source/bzs/db/engine/mysql/database.cpp +199 -74
- data/source/bzs/db/engine/mysql/database.h +47 -18
- data/source/bzs/db/engine/mysql/dbManager.cpp +1 -0
- data/source/bzs/db/engine/mysql/mysqlInternal.h +32 -8
- data/source/bzs/db/protocol/tdap/btrDate.cpp +110 -75
- data/source/bzs/db/protocol/tdap/btrDate.h +46 -21
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +18 -18
- data/source/bzs/db/protocol/tdap/client/activeTable.h +25 -25
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +10 -4
- data/source/bzs/db/protocol/tdap/client/client.cpp +6 -5
- data/source/bzs/db/protocol/tdap/client/client.h +82 -15
- data/source/bzs/db/protocol/tdap/client/database.cpp +531 -142
- data/source/bzs/db/protocol/tdap/client/database.h +19 -6
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +461 -408
- data/source/bzs/db/protocol/tdap/client/dbDef.h +11 -17
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +61 -13
- data/source/bzs/db/protocol/tdap/client/field.cpp +1592 -1398
- data/source/bzs/db/protocol/tdap/client/field.h +110 -121
- data/source/bzs/db/protocol/tdap/client/fields.h +40 -10
- data/source/bzs/db/protocol/tdap/client/filter.h +69 -55
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +296 -164
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +77 -25
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +31 -13
- data/source/bzs/db/protocol/tdap/client/memRecord.h +31 -21
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +69 -24
- data/source/bzs/db/protocol/tdap/client/nsTable.h +3 -1
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +1 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +46 -27
- data/source/bzs/db/protocol/tdap/client/request.h +2 -1
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +44 -9
- data/source/bzs/db/protocol/tdap/client/serializer.h +1 -1
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +182 -76
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +23 -12
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +8 -10
- data/source/bzs/db/protocol/tdap/client/table.cpp +172 -93
- data/source/bzs/db/protocol/tdap/client/table.h +112 -37
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +17 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +0 -1
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +0 -2
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +698 -14
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +723 -307
- data/source/bzs/db/protocol/tdap/myDateTime.h +294 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +164 -54
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +6 -3
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +133 -550
- data/source/bzs/db/protocol/tdap/mysql/request.h +6 -5
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +217 -82
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +1 -1
- data/source/bzs/db/protocol/tdap/tdapRequest.h +4 -9
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +808 -17
- data/source/bzs/db/protocol/tdap/tdapSchema.h +656 -164
- data/source/bzs/db/protocol/tdap/tdapcapi.h +130 -28
- data/source/bzs/db/protocol/tdap/uri.h +40 -32
- data/source/bzs/db/transactd/connManager.cpp +1 -1
- data/source/bzs/db/transactd/transactd.cpp +7 -0
- data/source/bzs/env/compiler.h +107 -94
- data/source/bzs/env/crosscompile.cpp +24 -12
- data/source/bzs/env/crosscompile.h +75 -6
- data/source/bzs/env/mbcswchrLinux.cpp +2 -2
- data/source/bzs/env/tcharMinGW.h +4 -0
- data/source/bzs/example/changeSchema.cpp +22 -17
- data/source/bzs/example/queryData.cpp +4 -0
- data/source/bzs/netsvc/client/iconnection.h +3 -1
- data/source/bzs/netsvc/client/tcpClient.h +10 -3
- data/source/bzs/rtl/stringBuffers.cpp +7 -0
- data/source/bzs/test/tdclatl/bench_query_atl.js +6 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +8 -1
- data/source/bzs/test/tdclatl/test_query_atl.js +22 -2
- data/source/bzs/test/tdclatl/test_v3.js +1017 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +55 -21
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +0 -5
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +2 -0
- data/source/bzs/test/tdclphp/transactd_v3_Test.php +743 -0
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -5
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +2 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +39 -16
- data/source/bzs/test/tdclrb/transactd_v3_spec.rb +748 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +55 -58
- data/source/bzs/test/transactdBench/transactdBench2.cpp +1 -3
- data/source/bzs/test/trdclengn/testField.h +3305 -0
- data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +1050 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +112 -190
- data/source/bzs/test/trdclengn/testbase.h +137 -0
- data/source/global/ormsrcgen/srcgen.cpp +23 -12
- data/source/global/ormsrcgen/template/ormDataClass_template.h +2 -0
- data/source/global/querystmts/querystmts.cpp +2 -3
- data/source/global/tdclatl/Bitset.cpp +38 -0
- data/source/global/tdclatl/Bitset.h +63 -0
- data/source/global/tdclatl/Database.cpp +59 -18
- data/source/global/tdclatl/Database.h +7 -4
- data/source/global/tdclatl/DbDef.cpp +6 -6
- data/source/global/tdclatl/DbDef.h +2 -1
- data/source/global/tdclatl/Field.cpp +112 -0
- data/source/global/tdclatl/Field.h +19 -5
- data/source/global/tdclatl/FieldDef.cpp +137 -16
- data/source/global/tdclatl/FieldDef.h +18 -2
- data/source/global/tdclatl/FieldDefs.cpp +54 -1
- data/source/global/tdclatl/FieldDefs.h +3 -0
- data/source/global/tdclatl/GroupQuery.cpp +8 -8
- data/source/global/tdclatl/QueryBase.cpp +65 -0
- data/source/global/tdclatl/QueryBase.h +10 -0
- data/source/global/tdclatl/Record.cpp +33 -2
- data/source/global/tdclatl/Record.h +3 -1
- data/source/global/tdclatl/RecordsetQuery.cpp +42 -0
- data/source/global/tdclatl/RecordsetQuery.h +8 -0
- data/source/global/tdclatl/Table.cpp +127 -3
- data/source/global/tdclatl/Table.h +10 -1
- data/source/global/tdclatl/TableDef.cpp +41 -8
- data/source/global/tdclatl/TableDef.h +7 -2
- data/source/global/tdclatl/activeTable.cpp +40 -71
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/tdclatl.idl +222 -28
- data/source/linux/tchar.h +100 -96
- data/transactd.gemspec +2 -2
- metadata +13 -11
- data/BUILD_UNIX-JA.md +0 -161
- data/BUILD_WIN-JA.md +0 -326
- data/README_ORMSRCGEN-JA.md +0 -115
- data/README_ORMSRCGEN.md +0 -118
- data/RELEASE_NOTE-JA.md +0 -356
- data/RELEASE_NOTE.md +0 -360
- data/bin/common/tdclc_32_2_4.dll +0 -0
- data/bin/common/tdclc_64_2_4.dll +0 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +0 -375
|
@@ -73,12 +73,13 @@ public:
|
|
|
73
73
|
virtual unsigned char* allocBlobBlock(size_t size) = 0;
|
|
74
74
|
virtual unsigned char* ptr(size_t row, int stat) = 0;
|
|
75
75
|
virtual void setJoinType(int v) = 0;
|
|
76
|
-
virtual void
|
|
76
|
+
virtual void setInvalidMemblock(size_t row, bool v) = 0;
|
|
77
77
|
virtual void setJoinRowMap(
|
|
78
78
|
const std::vector<std::vector<int> >* v /*, size_t size*/) = 0;
|
|
79
79
|
virtual const std::vector<std::vector<int> >* joinRowMap() const = 0;
|
|
80
80
|
virtual void duplicateRow(int row, int count) = 0;
|
|
81
81
|
virtual void removeLastMemBlock(int row) = 0;
|
|
82
|
+
virtual int joinType() const = 0;
|
|
82
83
|
};
|
|
83
84
|
|
|
84
85
|
class filter;
|
|
@@ -86,6 +87,7 @@ typedef boost::shared_ptr<filter> pq_handle;
|
|
|
86
87
|
|
|
87
88
|
/** @endcond */
|
|
88
89
|
|
|
90
|
+
|
|
89
91
|
class DLLLIB table : public nstable
|
|
90
92
|
{
|
|
91
93
|
static void* __STDCALL DDBA(client::table* tb, uint_td size);
|
|
@@ -94,6 +96,7 @@ class DLLLIB table : public nstable
|
|
|
94
96
|
friend class database;
|
|
95
97
|
friend class filter;
|
|
96
98
|
friend class fields;
|
|
99
|
+
friend class writableRecord;
|
|
97
100
|
friend struct logic;
|
|
98
101
|
|
|
99
102
|
struct tbimpl* m_impl;
|
|
@@ -119,11 +122,13 @@ class DLLLIB table : public nstable
|
|
|
119
122
|
uint_td doRecordCount(bool estimate, bool fromCurrent); // orverride
|
|
120
123
|
short_td doBtrvErr(HWND hWnd, _TCHAR* retbuf = NULL); // orverride
|
|
121
124
|
void doFind(ushort_td op, bool notIncCurrent);
|
|
125
|
+
void* getExtendBufferForOpen(uint_td& size); // orverride
|
|
122
126
|
bool setSeekValueField(int row);
|
|
123
127
|
void btrvSeekMulti();
|
|
124
128
|
bool doSeekMultiAfter(int row);
|
|
125
129
|
void* doDdba(uint_td size);
|
|
126
130
|
bool isReadContinue(ushort_td& op);
|
|
131
|
+
void incTabledefRefCount(tabledef* td, bool mysqlMullmode);
|
|
127
132
|
|
|
128
133
|
protected:
|
|
129
134
|
explicit table(nsdatabase* pbe); // Inheritance is impossible
|
|
@@ -151,12 +156,18 @@ protected:
|
|
|
151
156
|
|
|
152
157
|
void onInsertAfter(int beforeResult); // orverride
|
|
153
158
|
bool isUniqeKey(char_td keynum); // orverride
|
|
154
|
-
void init(tabledef** def, short filenum, bool regularDir);
|
|
159
|
+
void init(tabledef** def, short filenum, bool regularDir, bool mysqlnull);
|
|
155
160
|
void* attachBuffer(void* newPtr, bool unpack = false, size_t size = 0);
|
|
156
161
|
void dettachBuffer();
|
|
157
162
|
bool doPrepare();
|
|
158
163
|
|
|
159
|
-
|
|
164
|
+
inline unsigned int nullBytes() const
|
|
165
|
+
{
|
|
166
|
+
return (m_tableDef && (*m_tableDef)->isMysqlNullMode()) ?
|
|
167
|
+
(*m_tableDef)->nullbytes() : 0;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
virtual void doInit(tabledef** def, short filenum, bool regularDir, bool mysqlnull);
|
|
160
171
|
|
|
161
172
|
virtual void onRecordCounting(size_t count, bool& cancel);
|
|
162
173
|
|
|
@@ -164,6 +175,7 @@ protected:
|
|
|
164
175
|
|
|
165
176
|
public:
|
|
166
177
|
using nstable::eFindType;
|
|
178
|
+
enum eNullReset{clearNull, defaultNull};
|
|
167
179
|
|
|
168
180
|
inline const tabledef* tableDef() const { return *m_tableDef; };
|
|
169
181
|
inline const tabledef** tableDefPtr() const
|
|
@@ -173,7 +185,7 @@ public:
|
|
|
173
185
|
|
|
174
186
|
inline bool valiableFormatType() const
|
|
175
187
|
{
|
|
176
|
-
return (*m_tableDef)->optionFlags.bitA;
|
|
188
|
+
return (*m_tableDef)->optionFlags.bitA || (*m_tableDef)->m_nullbytes;
|
|
177
189
|
}
|
|
178
190
|
|
|
179
191
|
inline bool blobFieldUsed() const { return (*m_tableDef)->optionFlags.bitB; }
|
|
@@ -187,7 +199,7 @@ public:
|
|
|
187
199
|
int bookmarksCount() const;
|
|
188
200
|
void moveBookmarks(unsigned int index);
|
|
189
201
|
bookmark_td bookmarks(unsigned int index) const;
|
|
190
|
-
void clearBuffer();
|
|
202
|
+
void clearBuffer(eNullReset resetType = defaultNull);
|
|
191
203
|
unsigned int getRecordHash();
|
|
192
204
|
void smartUpdate();
|
|
193
205
|
|
|
@@ -211,25 +223,38 @@ public:
|
|
|
211
223
|
|
|
212
224
|
void setFilter(const _TCHAR* str, ushort_td rejectCount,
|
|
213
225
|
ushort_td cacheCount, bool autoEscape = true);
|
|
214
|
-
short fieldNumByName(const _TCHAR* name);
|
|
215
|
-
unsigned char getFVbyt(short index);
|
|
216
|
-
short getFVsht(short index);
|
|
217
|
-
int getFVint(short index);
|
|
218
|
-
int getFVlng(short index);
|
|
219
|
-
__int64 getFV64(short index);
|
|
220
|
-
float getFVflt(short index);
|
|
221
|
-
double getFVdbl(short index);
|
|
222
|
-
const char* getFVAstr(short index);
|
|
223
|
-
void* getFVbin(short index, uint_td& size);
|
|
224
|
-
unsigned char getFVbyt(const _TCHAR* fieldName);
|
|
225
|
-
short getFVsht(const _TCHAR* fieldName);
|
|
226
|
-
int getFVint(const _TCHAR* fieldName);
|
|
227
|
-
int getFVlng(const _TCHAR* fieldName);
|
|
228
|
-
__int64 getFV64(const _TCHAR* fieldName);
|
|
229
|
-
float getFVflt(const _TCHAR* fieldName);
|
|
230
|
-
double getFVdbl(const _TCHAR* fieldName);
|
|
231
|
-
const char* getFVAstr(const _TCHAR* fieldName);
|
|
232
|
-
void* getFVbin(const _TCHAR* fieldName, uint_td& size);
|
|
226
|
+
short fieldNumByName(const _TCHAR* name) const ;
|
|
227
|
+
unsigned char getFVbyt(short index) const;
|
|
228
|
+
short getFVsht(short index) const;
|
|
229
|
+
int getFVint(short index) const;
|
|
230
|
+
int getFVlng(short index) const;
|
|
231
|
+
__int64 getFV64(short index) const;
|
|
232
|
+
float getFVflt(short index) const;
|
|
233
|
+
double getFVdbl(short index) const;
|
|
234
|
+
const char* getFVAstr(short index) const;
|
|
235
|
+
void* getFVbin(short index, uint_td& size) const;
|
|
236
|
+
unsigned char getFVbyt(const _TCHAR* fieldName) const;
|
|
237
|
+
short getFVsht(const _TCHAR* fieldName) const;
|
|
238
|
+
int getFVint(const _TCHAR* fieldName) const;
|
|
239
|
+
int getFVlng(const _TCHAR* fieldName) const;
|
|
240
|
+
__int64 getFV64(const _TCHAR* fieldName) const;
|
|
241
|
+
float getFVflt(const _TCHAR* fieldName) const;
|
|
242
|
+
double getFVdbl(const _TCHAR* fieldName) const;
|
|
243
|
+
const char* getFVAstr(const _TCHAR* fieldName) const;
|
|
244
|
+
void* getFVbin(const _TCHAR* fieldName, uint_td& size) const;
|
|
245
|
+
bool getFVNull(short index) const ;
|
|
246
|
+
bool getFVNull(const _TCHAR* fieldName) const;
|
|
247
|
+
|
|
248
|
+
inline bitset getFVbits(short index) const
|
|
249
|
+
{
|
|
250
|
+
return bitset(getFV64(index));
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
inline bitset getFVbits(const _TCHAR* fieldName) const
|
|
254
|
+
{
|
|
255
|
+
return bitset(getFV64(fieldName));
|
|
256
|
+
}
|
|
257
|
+
|
|
233
258
|
void setFV(short index, double data);
|
|
234
259
|
void setFV(short index, float data);
|
|
235
260
|
void setFV(short index, unsigned char data);
|
|
@@ -239,23 +264,25 @@ public:
|
|
|
239
264
|
void setFV(short index, const void* data, uint_td size);
|
|
240
265
|
void setFV(const _TCHAR* fieldName, int data);
|
|
241
266
|
void setFVA(const _TCHAR* fieldName, const char* data);
|
|
267
|
+
void setFVNull(short index, bool v);
|
|
268
|
+
void setFVNull(const _TCHAR* fieldName, bool v);
|
|
242
269
|
|
|
243
270
|
#ifdef _WIN32
|
|
244
|
-
const wchar_t* getFVWstr(const _TCHAR* fieldName);
|
|
245
|
-
const wchar_t* getFVWstr(short index);
|
|
271
|
+
const wchar_t* getFVWstr(const _TCHAR* fieldName) const;
|
|
272
|
+
const wchar_t* getFVWstr(short index) const;
|
|
246
273
|
void setFVW(short index, const wchar_t* data);
|
|
247
274
|
void setFVW(const _TCHAR* fieldName, const wchar_t* data);
|
|
248
275
|
#endif
|
|
249
276
|
|
|
250
277
|
#ifdef _UNICODE
|
|
251
|
-
inline const wchar_t* getFVstr(short index) { return getFVWstr(index); };
|
|
252
|
-
inline const wchar_t* getFVstr(const wchar_t* fieldName)
|
|
278
|
+
inline const wchar_t* getFVstr(short index) const { return getFVWstr(index); };
|
|
279
|
+
inline const wchar_t* getFVstr(const wchar_t* fieldName) const
|
|
253
280
|
{
|
|
254
281
|
return getFVWstr(fieldName);
|
|
255
282
|
};
|
|
256
283
|
#else
|
|
257
|
-
inline const char* getFVstr(short index) { return getFVAstr(index); };
|
|
258
|
-
inline const char* getFVstr(const char* fieldName)
|
|
284
|
+
inline const char* getFVstr(short index) const { return getFVAstr(index); };
|
|
285
|
+
inline const char* getFVstr(const char* fieldName) const
|
|
259
286
|
{
|
|
260
287
|
return getFVAstr(fieldName);
|
|
261
288
|
};
|
|
@@ -276,6 +303,17 @@ public:
|
|
|
276
303
|
setFVW(fieldName, data);
|
|
277
304
|
};
|
|
278
305
|
#endif
|
|
306
|
+
|
|
307
|
+
inline void setFV(short index, const bitset& bits)
|
|
308
|
+
{
|
|
309
|
+
setFV(index, bits.internalValue());
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
inline void setFV(const _TCHAR* fieldName, const bitset& bits)
|
|
313
|
+
{
|
|
314
|
+
setFV(fieldName, bits.internalValue());
|
|
315
|
+
}
|
|
316
|
+
|
|
279
317
|
|
|
280
318
|
void setFV(const _TCHAR* fieldName, double data);
|
|
281
319
|
void setFV(const _TCHAR* fieldName, float data);
|
|
@@ -410,14 +448,14 @@ inline std::_tstring lexical_cast(char v)
|
|
|
410
448
|
inline std::_tstring lexical_cast(double v)
|
|
411
449
|
{
|
|
412
450
|
_TCHAR tmp[256];
|
|
413
|
-
_stprintf_s(tmp, 256, _T("%.*f"),
|
|
451
|
+
_stprintf_s(tmp, 256, _T("%.*f"), 16, v);
|
|
414
452
|
return std::_tstring(tmp);
|
|
415
453
|
}
|
|
416
454
|
|
|
417
455
|
inline std::_tstring lexical_cast(float v)
|
|
418
456
|
{
|
|
419
457
|
_TCHAR tmp[256];
|
|
420
|
-
_stprintf_s(tmp, 256, _T("%.*f"),
|
|
458
|
+
_stprintf_s(tmp, 256, _T("%.*f"), 16, v);
|
|
421
459
|
return std::_tstring(tmp);
|
|
422
460
|
}
|
|
423
461
|
|
|
@@ -425,9 +463,12 @@ inline std::_tstring lexical_cast(const _TCHAR* v)
|
|
|
425
463
|
{
|
|
426
464
|
if (v)
|
|
427
465
|
return std::_tstring(v);
|
|
466
|
+
THROW_BZS_ERROR_WITH_CODEMSG(STATUS_FILTERSTRING_ERROR,
|
|
467
|
+
_T("Invalid the value, The value is NULL."));
|
|
428
468
|
return std::_tstring(_T(""));
|
|
429
469
|
}
|
|
430
470
|
|
|
471
|
+
|
|
431
472
|
class qlogic
|
|
432
473
|
{
|
|
433
474
|
std::_tstring m_name;
|
|
@@ -502,6 +543,18 @@ public:
|
|
|
502
543
|
return *this;
|
|
503
544
|
}
|
|
504
545
|
|
|
546
|
+
query& whereIsNull(const _TCHAR* name)
|
|
547
|
+
{
|
|
548
|
+
addLogic(name, _T("<==>"), _T(""));
|
|
549
|
+
return *this;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
query& whereIsNotNull(const _TCHAR* name)
|
|
553
|
+
{
|
|
554
|
+
addLogic(name, _T("<!=>"), _T(""));
|
|
555
|
+
return *this;
|
|
556
|
+
}
|
|
557
|
+
|
|
505
558
|
template <class T>
|
|
506
559
|
query& and_(const _TCHAR* name, const _TCHAR* qlogic, T value)
|
|
507
560
|
{
|
|
@@ -513,6 +566,18 @@ public:
|
|
|
513
566
|
return *this;
|
|
514
567
|
}
|
|
515
568
|
|
|
569
|
+
query& andIsNull(const _TCHAR* name)
|
|
570
|
+
{
|
|
571
|
+
addLogic(_T("and"), name, _T("<==>"), _T(""));
|
|
572
|
+
return *this;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
query& andIsNotNull(const _TCHAR* name)
|
|
576
|
+
{
|
|
577
|
+
addLogic(_T("and"), name, _T("<!=>"), _T(""));
|
|
578
|
+
return *this;
|
|
579
|
+
}
|
|
580
|
+
|
|
516
581
|
template <class T>
|
|
517
582
|
query& or_(const _TCHAR* name, const _TCHAR* qlogic, T value)
|
|
518
583
|
{
|
|
@@ -524,6 +589,19 @@ public:
|
|
|
524
589
|
return *this;
|
|
525
590
|
}
|
|
526
591
|
|
|
592
|
+
query& orIsNull(const _TCHAR* name)
|
|
593
|
+
{
|
|
594
|
+
addLogic(_T("or"), name, _T("<==>"), _T(""));
|
|
595
|
+
return *this;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
query& orIsNotNull(const _TCHAR* name)
|
|
599
|
+
{
|
|
600
|
+
addLogic(_T("or"), name, _T("<!=>"), _T(""));
|
|
601
|
+
return *this;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
|
|
527
605
|
template <class T0, class T1, class T2, class T3, class T4, class T5,
|
|
528
606
|
class T6, class T7>
|
|
529
607
|
query& in(const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,
|
|
@@ -611,6 +689,8 @@ public:
|
|
|
611
689
|
return *this;
|
|
612
690
|
}
|
|
613
691
|
|
|
692
|
+
inline query& segmentsForInValue(int v) { joinKeySize(v); return *this;}
|
|
693
|
+
|
|
614
694
|
static query* create(); // implemet int activeTable.cpp
|
|
615
695
|
};
|
|
616
696
|
|
|
@@ -632,11 +712,6 @@ bool DLLLIB supplyValue(pq_handle& filter, int index, __int64 v);
|
|
|
632
712
|
bool DLLLIB supplyValue(pq_handle& filter, int index, float v);
|
|
633
713
|
bool DLLLIB supplyValue(pq_handle& filter, int index, double v);
|
|
634
714
|
|
|
635
|
-
//bool DLLLIB supplyInValues(pq_handle& filter, const _TCHAR* values[], size_t size, int segments);
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
715
|
|
|
641
716
|
#pragma warning(default : 4251)
|
|
642
717
|
|
|
@@ -67,6 +67,8 @@ enum eFindCurrntType
|
|
|
67
67
|
ePosNeedPrev = -1
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
+
#pragma warning(disable : 4996)
|
|
71
|
+
|
|
70
72
|
class connectParams
|
|
71
73
|
{
|
|
72
74
|
_TCHAR m_buf[MAX_PATH];
|
|
@@ -142,6 +144,7 @@ public:
|
|
|
142
144
|
|
|
143
145
|
inline short type() const { return m_type; };
|
|
144
146
|
};
|
|
147
|
+
#pragma warning(default : 4996)
|
|
145
148
|
|
|
146
149
|
/* databaseManager interface
|
|
147
150
|
If use some databases, implemnt a this interface and set the activeTable
|
|
@@ -1055,6 +1058,20 @@ inline void updateTableDef(dbdef* def, short tableid)
|
|
|
1055
1058
|
}
|
|
1056
1059
|
}
|
|
1057
1060
|
|
|
1061
|
+
inline void synchronizeSeverSchema(dbdef* def, short tableid)
|
|
1062
|
+
{
|
|
1063
|
+
def->synchronizeSeverSchema(tableid);
|
|
1064
|
+
if (def->stat() != 0)
|
|
1065
|
+
{
|
|
1066
|
+
std::_tstring s;
|
|
1067
|
+
if (def->tableDefs(tableid))
|
|
1068
|
+
s = def->tableDefs(tableid)->tableName();
|
|
1069
|
+
nstable::throwError((std::_tstring(_T("synchronize Sever Schema ")) + s).c_str(),
|
|
1070
|
+
def->stat());
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
|
|
1058
1075
|
/** @cond INTERNAL */
|
|
1059
1076
|
|
|
1060
1077
|
template <class T> inline table* getTable(T& it)
|
|
@@ -28,8 +28,6 @@ library path in project option.
|
|
|
28
28
|
#ifdef TRDCL_AUTOLINK
|
|
29
29
|
#include <bzs/env/compiler.h>
|
|
30
30
|
#include <bzs/db/protocol/tdap/tdapcapi.h>
|
|
31
|
-
#define TD_CPP_LIB_NAME \
|
|
32
|
-
LIB_PREFIX TD_CPP_LIB_PRE CPP_INTERFACE_VERSTR SHARED_LIB_EXTENTION
|
|
33
31
|
#pragma comment(lib, TD_CPP_LIB_NAME)
|
|
34
32
|
#endif // TRDCL_AUTOLINK
|
|
35
33
|
|