transactd 2.4.5 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|