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
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
=================================================================*/
|
|
21
21
|
#include <bzs/db/protocol/tdap/client/trdboostapiInternal.h>
|
|
22
22
|
#include <boost/shared_ptr.hpp>
|
|
23
|
+
#include <boost/noncopyable.hpp>
|
|
24
|
+
|
|
23
25
|
#include <stdio.h>
|
|
24
26
|
|
|
25
27
|
#if defined(__GNUC__)
|
|
@@ -77,22 +79,58 @@ public:
|
|
|
77
79
|
inline float f() const {return m_tb.getFVflt(m_index);}
|
|
78
80
|
|
|
79
81
|
inline double d() const {return m_tb.getFVdbl(m_index);}
|
|
80
|
-
|
|
82
|
+
|
|
83
|
+
inline field& operator = (const _TCHAR* p)
|
|
84
|
+
{
|
|
81
85
|
m_tb.setFV(m_index, p);
|
|
82
86
|
return *this;
|
|
83
|
-
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
inline field& operator = (const std::_tstring& p)
|
|
90
|
+
{
|
|
91
|
+
m_tb.setFV(m_index, p.c_str());
|
|
92
|
+
return *this;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
#ifdef _UNICODE
|
|
96
|
+
inline field& operator = (const char* p)
|
|
97
|
+
{
|
|
98
|
+
m_tb.setFVA(m_index, p);
|
|
99
|
+
return *this;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
inline field& operator = (const std::string& p)
|
|
103
|
+
{
|
|
104
|
+
m_tb.setFVA(m_index, p.c_str());
|
|
105
|
+
return *this;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
#endif
|
|
109
|
+
|
|
110
|
+
inline field& operator = (int v)
|
|
111
|
+
{
|
|
84
112
|
m_tb.setFV(m_index, v);
|
|
85
113
|
return *this;
|
|
86
|
-
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
inline field& operator = (__int64 v)
|
|
117
|
+
{
|
|
87
118
|
m_tb.setFV(m_index, v);
|
|
88
119
|
return *this;
|
|
89
|
-
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
inline field& operator = (float v)
|
|
123
|
+
{
|
|
90
124
|
m_tb.setFV(m_index, v);
|
|
91
125
|
return *this;
|
|
92
|
-
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
inline field& operator = (double v)
|
|
129
|
+
{
|
|
93
130
|
m_tb.setFV(m_index, v);
|
|
94
131
|
return *this;
|
|
95
132
|
}
|
|
133
|
+
|
|
96
134
|
inline bool operator != (const _TCHAR* p) {return (_tcscmp(p, c_str()) != 0);};
|
|
97
135
|
inline bool operator == (const _TCHAR* p) {return (_tcscmp(p, c_str())==0);};
|
|
98
136
|
|
|
@@ -166,7 +204,12 @@ class tableIterator
|
|
|
166
204
|
public:
|
|
167
205
|
static const tableIterator eos;
|
|
168
206
|
|
|
169
|
-
inline tableIterator(table& tb) : m_tb(tb), m_fds(tb)
|
|
207
|
+
inline tableIterator(table& tb) : m_tb(tb), m_fds(tb)
|
|
208
|
+
{
|
|
209
|
+
if ((tb.stat() != 0) && (tb.stat() != STATUS_EOF) && (tb.stat() != STATUS_NOT_FOUND_TI))
|
|
210
|
+
nstable::throwError(std::_tstring(_T("tableIterator")).c_str(), &tb);
|
|
211
|
+
|
|
212
|
+
}
|
|
170
213
|
|
|
171
214
|
table& tb() const {return m_tb;};
|
|
172
215
|
|
|
@@ -287,9 +330,17 @@ const filterdStepIterator filterdStepIterator::eos;
|
|
|
287
330
|
template<>
|
|
288
331
|
const filterdFindIterator filterdFindIterator::eos;
|
|
289
332
|
|
|
333
|
+
template<>
|
|
334
|
+
const filterdIndexRvIterator filterdIndexRvIterator::eos;
|
|
290
335
|
|
|
336
|
+
template<>
|
|
337
|
+
const filterdStepRvIterator filterdStepRvIterator::eos;
|
|
338
|
+
|
|
339
|
+
template<>
|
|
340
|
+
const filterdFindRvIterator filterdFindRvIterator::eos;
|
|
291
341
|
|
|
292
|
-
|
|
342
|
+
|
|
343
|
+
indexIterator readIndex(table_ptr tb, eIndexOpType op)
|
|
293
344
|
{
|
|
294
345
|
|
|
295
346
|
switch (op)
|
|
@@ -309,7 +360,7 @@ inline indexIterator readIndex(table_ptr tb, eIndexOpType op)
|
|
|
309
360
|
return indexIterator(*tb);
|
|
310
361
|
}
|
|
311
362
|
|
|
312
|
-
|
|
363
|
+
indexRvIterator readIndexRv(table_ptr tb, eIndexOpType op)
|
|
313
364
|
{
|
|
314
365
|
|
|
315
366
|
switch (op)
|
|
@@ -355,192 +406,152 @@ inline indexRvIterator readIndexRv(table_ptr tb, eIndexOpType op, char_td keynum
|
|
|
355
406
|
|
|
356
407
|
}
|
|
357
408
|
|
|
358
|
-
|
|
359
|
-
template <class T0 = _TCHAR*, class T1 = _TCHAR*, class T2 = _TCHAR*, class T3 = _TCHAR*
|
|
360
|
-
, class T4 = _TCHAR*, class T5 = _TCHAR*, class T6 = _TCHAR*, class T7 = _TCHAR*>
|
|
361
|
-
class keyValue
|
|
362
|
-
{
|
|
363
|
-
|
|
364
|
-
public:
|
|
365
|
-
inline static void set(table_ptr tb, const char_td keynum
|
|
366
|
-
,const T0 kv0, const T1 kv1=NULL
|
|
367
|
-
,const T2 kv2=NULL, const T3 kv3=NULL
|
|
368
|
-
,const T4 kv4=NULL, const T5 kv5=NULL
|
|
369
|
-
,const T6 kv6=NULL, const T7 kv7=NULL)
|
|
370
|
-
{
|
|
371
|
-
const tabledef& td = *tb->tableDef();
|
|
372
|
-
if (keynum < td.keyCount)
|
|
373
|
-
{
|
|
374
|
-
const keydef kd = td.keyDefs[keynum];
|
|
375
|
-
if (kd.segmentCount > 0)
|
|
376
|
-
tb->setFV(kd.segments[0].fieldNum, kv0);
|
|
377
|
-
if (kd.segmentCount > 1)
|
|
378
|
-
tb->setFV(kd.segments[1].fieldNum, kv1);
|
|
379
|
-
if (kd.segmentCount > 2)
|
|
380
|
-
tb->setFV(kd.segments[2].fieldNum, kv2);
|
|
381
|
-
if (kd.segmentCount > 3)
|
|
382
|
-
tb->setFV(kd.segments[3].fieldNum, kv3);
|
|
383
|
-
if (kd.segmentCount > 4)
|
|
384
|
-
tb->setFV(kd.segments[4].fieldNum, kv4);
|
|
385
|
-
if (kd.segmentCount > 5)
|
|
386
|
-
tb->setFV(kd.segments[5].fieldNum, kv5);
|
|
387
|
-
if (kd.segmentCount > 6)
|
|
388
|
-
tb->setFV(kd.segments[6].fieldNum, kv6);
|
|
389
|
-
if (kd.segmentCount > 7)
|
|
390
|
-
tb->setFV(kd.segments[7].fieldNum, kv7);
|
|
391
|
-
}
|
|
392
|
-
tb->setKeyNum(keynum);
|
|
393
|
-
|
|
394
|
-
}
|
|
395
|
-
};
|
|
396
|
-
|
|
397
409
|
template <class T0, class T1, class T2, class T3
|
|
398
410
|
, class T4, class T5, class T6, class T7>
|
|
399
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
411
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
400
412
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3
|
|
401
413
|
,const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
|
|
402
414
|
{
|
|
403
|
-
|
|
415
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::
|
|
404
416
|
set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
|
|
405
417
|
return readIndex(tb, op);
|
|
406
418
|
}
|
|
407
419
|
|
|
408
420
|
template <class T0, class T1, class T2, class T3
|
|
409
421
|
, class T4, class T5, class T6>
|
|
410
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
422
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
411
423
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3
|
|
412
424
|
,const T4 kv4, const T5 kv5, const T6 kv6)
|
|
413
425
|
{
|
|
414
|
-
|
|
426
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::
|
|
415
427
|
set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6);
|
|
416
428
|
return readIndex(tb, op);
|
|
417
429
|
}
|
|
418
430
|
|
|
419
431
|
template <class T0, class T1, class T2, class T3
|
|
420
432
|
, class T4, class T5>
|
|
421
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
433
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
422
434
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3
|
|
423
435
|
,const T4 kv4, const T5 kv5)
|
|
424
436
|
{
|
|
425
|
-
|
|
437
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5);
|
|
426
438
|
return readIndex(tb, op);
|
|
427
439
|
}
|
|
428
440
|
|
|
429
441
|
template <class T0, class T1, class T2, class T3, class T4>
|
|
430
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
442
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
431
443
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4)
|
|
432
444
|
{
|
|
433
|
-
|
|
445
|
+
keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4);
|
|
434
446
|
return readIndex(tb, op);
|
|
435
447
|
}
|
|
436
448
|
|
|
437
449
|
template <class T0, class T1, class T2, class T3>
|
|
438
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
450
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
439
451
|
,const T0 kv0, const T1 kv1 ,const T2 kv2, const T3 kv3)
|
|
440
452
|
{
|
|
441
|
-
|
|
453
|
+
keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
|
|
442
454
|
return readIndex(tb, op);
|
|
443
455
|
}
|
|
444
456
|
|
|
445
457
|
template <class T0, class T1, class T2>
|
|
446
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
458
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
447
459
|
,const T0 kv0, const T1 kv1 ,const T2 kv2)
|
|
448
460
|
{
|
|
449
|
-
|
|
461
|
+
keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
|
|
450
462
|
return readIndex(tb, op);
|
|
451
463
|
}
|
|
452
464
|
|
|
453
465
|
template <class T0, class T1>
|
|
454
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
466
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
455
467
|
,const T0 kv0, const T1 kv1)
|
|
456
468
|
{
|
|
457
|
-
|
|
469
|
+
keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
|
|
458
470
|
return readIndex(tb, op);
|
|
459
471
|
}
|
|
460
472
|
|
|
461
473
|
template <class T0>
|
|
462
|
-
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
474
|
+
inline indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
463
475
|
,const T0 kv0)
|
|
464
476
|
{
|
|
465
|
-
|
|
477
|
+
keyValueSetter<T0>::set(tb, keynum, kv0);
|
|
466
478
|
return readIndex(tb, op);
|
|
467
479
|
}
|
|
468
480
|
|
|
469
481
|
|
|
470
482
|
template <class T0, class T1, class T2, class T3
|
|
471
483
|
, class T4, class T5, class T6, class T7>
|
|
472
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
484
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
473
485
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3
|
|
474
486
|
,const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
|
|
475
487
|
{
|
|
476
|
-
|
|
488
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::
|
|
477
489
|
set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
|
|
478
490
|
return readIndexRv(tb, op);
|
|
479
491
|
}
|
|
480
492
|
|
|
481
493
|
template <class T0, class T1, class T2, class T3
|
|
482
494
|
, class T4, class T5, class T6>
|
|
483
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
495
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
484
496
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3
|
|
485
497
|
,const T4 kv4, const T5 kv5, const T6 kv6)
|
|
486
498
|
{
|
|
487
|
-
|
|
499
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::
|
|
488
500
|
set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6);
|
|
489
501
|
return readIndexRv(tb, op);
|
|
490
502
|
}
|
|
491
503
|
|
|
492
504
|
template <class T0, class T1, class T2, class T3
|
|
493
505
|
, class T4, class T5>
|
|
494
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
506
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
495
507
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3
|
|
496
508
|
,const T4 kv4, const T5 kv5)
|
|
497
509
|
{
|
|
498
|
-
|
|
510
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5);
|
|
499
511
|
return readIndexRv(tb, op);
|
|
500
512
|
}
|
|
501
513
|
|
|
502
514
|
template <class T0, class T1, class T2, class T3, class T4>
|
|
503
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
515
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
504
516
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4)
|
|
505
517
|
{
|
|
506
|
-
|
|
518
|
+
keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4);
|
|
507
519
|
return readIndexRv(tb, op);
|
|
508
520
|
}
|
|
509
521
|
|
|
510
522
|
template <class T0, class T1, class T2, class T3>
|
|
511
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
523
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
512
524
|
,const T0 kv0, const T1 kv1 ,const T2 kv2, const T3 kv3)
|
|
513
525
|
{
|
|
514
|
-
|
|
526
|
+
keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
|
|
515
527
|
return readIndexRv(tb, op);
|
|
516
528
|
}
|
|
517
529
|
|
|
518
530
|
template <class T0, class T1, class T2>
|
|
519
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
531
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
520
532
|
,const T0 kv0, const T1 kv1 ,const T2 kv2)
|
|
521
533
|
{
|
|
522
|
-
|
|
534
|
+
keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
|
|
523
535
|
return readIndexRv(tb, op);
|
|
524
536
|
}
|
|
525
537
|
|
|
526
538
|
template <class T0, class T1>
|
|
527
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
539
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
528
540
|
,const T0 kv0, const T1 kv1)
|
|
529
541
|
{
|
|
530
|
-
|
|
542
|
+
keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
|
|
531
543
|
return readIndexRv(tb, op);
|
|
532
544
|
}
|
|
533
545
|
|
|
534
546
|
template <class T0>
|
|
535
|
-
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
547
|
+
inline indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum
|
|
536
548
|
,const T0 kv0)
|
|
537
549
|
{
|
|
538
|
-
|
|
550
|
+
keyValueSetter<T0>::set(tb, keynum, kv0);
|
|
539
551
|
return readIndexRv(tb, op);
|
|
540
552
|
}
|
|
541
553
|
|
|
542
554
|
|
|
543
|
-
|
|
544
555
|
inline stepIterator readStep(table_ptr tb)
|
|
545
556
|
{
|
|
546
557
|
tb->stepFirst();
|
|
@@ -559,7 +570,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
559
570
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
|
|
560
571
|
{
|
|
561
572
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
562
|
-
|
|
573
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::
|
|
563
574
|
set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
|
|
564
575
|
tb->find(table::findForword);
|
|
565
576
|
return findIterator(*tb);
|
|
@@ -570,7 +581,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
570
581
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5, const T6 kv6)
|
|
571
582
|
{
|
|
572
583
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
573
|
-
|
|
584
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6);
|
|
574
585
|
tb->find(table::findForword);
|
|
575
586
|
return findIterator(*tb);
|
|
576
587
|
}
|
|
@@ -580,7 +591,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
580
591
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5)
|
|
581
592
|
{
|
|
582
593
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
583
|
-
|
|
594
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5);
|
|
584
595
|
tb->find(table::findForword);
|
|
585
596
|
return findIterator(*tb);
|
|
586
597
|
}
|
|
@@ -590,7 +601,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
590
601
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4)
|
|
591
602
|
{
|
|
592
603
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
593
|
-
|
|
604
|
+
keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4);
|
|
594
605
|
tb->find(table::findForword);
|
|
595
606
|
return findIterator(*tb);
|
|
596
607
|
}
|
|
@@ -600,7 +611,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
600
611
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3)
|
|
601
612
|
{
|
|
602
613
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
603
|
-
|
|
614
|
+
keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
|
|
604
615
|
tb->find(table::findForword);
|
|
605
616
|
return findIterator(*tb);
|
|
606
617
|
}
|
|
@@ -610,7 +621,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
610
621
|
,const T0 kv0, const T1 kv1, const T2 kv2)
|
|
611
622
|
{
|
|
612
623
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
613
|
-
|
|
624
|
+
keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
|
|
614
625
|
tb->find(table::findForword);
|
|
615
626
|
return findIterator(*tb);
|
|
616
627
|
}
|
|
@@ -620,7 +631,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
620
631
|
,const T0 kv0, const T1 kv1)
|
|
621
632
|
{
|
|
622
633
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
623
|
-
|
|
634
|
+
keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
|
|
624
635
|
tb->find(table::findForword);
|
|
625
636
|
return findIterator(*tb);
|
|
626
637
|
}
|
|
@@ -630,7 +641,7 @@ findIterator find(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
630
641
|
,const T0 kv0)
|
|
631
642
|
{
|
|
632
643
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
633
|
-
|
|
644
|
+
keyValueSetter<T0>::set(tb, keynum, kv0);
|
|
634
645
|
tb->find(table::findForword);
|
|
635
646
|
return findIterator(*tb);
|
|
636
647
|
}
|
|
@@ -640,7 +651,7 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
640
651
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
|
|
641
652
|
{
|
|
642
653
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
643
|
-
|
|
654
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::
|
|
644
655
|
set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
|
|
645
656
|
tb->find(table::findBackForword);
|
|
646
657
|
return findRvIterator(*tb);
|
|
@@ -651,7 +662,7 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
651
662
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5, const T6 kv6)
|
|
652
663
|
{
|
|
653
664
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
654
|
-
|
|
665
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6);
|
|
655
666
|
tb->find(table::findBackForword);
|
|
656
667
|
return findRvIterator(*tb);
|
|
657
668
|
}
|
|
@@ -661,7 +672,7 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
661
672
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5)
|
|
662
673
|
{
|
|
663
674
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
664
|
-
|
|
675
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5);
|
|
665
676
|
tb->find(table::findBackForword);
|
|
666
677
|
return findRvIterator(*tb);
|
|
667
678
|
}
|
|
@@ -671,7 +682,7 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
671
682
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4)
|
|
672
683
|
{
|
|
673
684
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
674
|
-
|
|
685
|
+
keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4);
|
|
675
686
|
tb->find(table::findBackForword);
|
|
676
687
|
return findRvIterator(*tb);
|
|
677
688
|
}
|
|
@@ -681,7 +692,7 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
681
692
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3)
|
|
682
693
|
{
|
|
683
694
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
684
|
-
|
|
695
|
+
keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
|
|
685
696
|
tb->find(table::findBackForword);
|
|
686
697
|
return findRvIterator(*tb);
|
|
687
698
|
}
|
|
@@ -691,7 +702,7 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
691
702
|
,const T0 kv0, const T1 kv1, const T2 kv2)
|
|
692
703
|
{
|
|
693
704
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
694
|
-
|
|
705
|
+
keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
|
|
695
706
|
tb->find(table::findBackForword);
|
|
696
707
|
return findRvIterator(*tb);
|
|
697
708
|
}
|
|
@@ -701,7 +712,7 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
701
712
|
,const T0 kv0, const T1 kv1)
|
|
702
713
|
{
|
|
703
714
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
704
|
-
|
|
715
|
+
keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
|
|
705
716
|
tb->find(table::findBackForword);
|
|
706
717
|
return findRvIterator(*tb);
|
|
707
718
|
}
|
|
@@ -711,14 +722,12 @@ findRvIterator findRv(table_ptr tb, const char_td keynum, const filterParams& fp
|
|
|
711
722
|
,const T0 kv0)
|
|
712
723
|
{
|
|
713
724
|
tb->setFilter(fp.filter(), fp.rejectCount(), fp.maxRecords());
|
|
714
|
-
|
|
725
|
+
keyValueSetter<T0>::set(tb, keynum, kv0);
|
|
715
726
|
tb->find(table::findBackForword);
|
|
716
727
|
return findRvIterator(*tb);
|
|
717
728
|
}
|
|
718
729
|
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
inline findIterator getFindIterator(indexIterator it, const filterParams& fp
|
|
730
|
+
findIterator getFindIterator(indexIterator it, const filterParams& fp
|
|
722
731
|
,bool isCurrentValid)
|
|
723
732
|
|
|
724
733
|
{
|
|
@@ -731,7 +740,7 @@ inline findIterator getFindIterator(indexIterator it, const filterParams& fp
|
|
|
731
740
|
return findIterator(it.tb());
|
|
732
741
|
}
|
|
733
742
|
|
|
734
|
-
|
|
743
|
+
findRvIterator getFindIterator(indexRvIterator it, const filterParams& fp
|
|
735
744
|
,bool isCurrentValid)
|
|
736
745
|
{
|
|
737
746
|
if (it != indexRvIterator::eos)
|
|
@@ -783,7 +792,8 @@ inline database_ptr createDatadaseObject()
|
|
|
783
792
|
return p;
|
|
784
793
|
}
|
|
785
794
|
|
|
786
|
-
|
|
795
|
+
template <class Database_Ptr, class ConnectParam_type>
|
|
796
|
+
inline void connect(Database_Ptr db, const ConnectParam_type& connPrams, bool newConnection)
|
|
787
797
|
{
|
|
788
798
|
db->connect(connPrams.uri(), newConnection);
|
|
789
799
|
if (db->stat())
|
|
@@ -791,7 +801,8 @@ inline void connect(database_ptr db, const connectParams& connPrams, bool newCon
|
|
|
791
801
|
|
|
792
802
|
}
|
|
793
803
|
|
|
794
|
-
|
|
804
|
+
template <class Database_Ptr>
|
|
805
|
+
inline void disconnect(Database_Ptr db, const connectParams& connPrams)
|
|
795
806
|
{
|
|
796
807
|
db->disconnect(connPrams.uri());
|
|
797
808
|
if (db->stat())
|
|
@@ -799,7 +810,8 @@ inline void disconnect(database_ptr db, const connectParams& connPrams)
|
|
|
799
810
|
|
|
800
811
|
}
|
|
801
812
|
|
|
802
|
-
|
|
813
|
+
template <class Database_Ptr>
|
|
814
|
+
inline void disconnect(Database_Ptr db)
|
|
803
815
|
{
|
|
804
816
|
db->disconnect();
|
|
805
817
|
if (db->stat())
|
|
@@ -807,14 +819,16 @@ inline void disconnect(database_ptr db)
|
|
|
807
819
|
|
|
808
820
|
}
|
|
809
821
|
|
|
810
|
-
|
|
822
|
+
template <class Database_Ptr>
|
|
823
|
+
inline void createDatabase(Database_Ptr db, const connectParams& connPrams)
|
|
811
824
|
{
|
|
812
825
|
db->create(connPrams.uri());
|
|
813
826
|
if (db->stat())
|
|
814
827
|
nstable::throwError((std::_tstring(_T("Create database ")) + connPrams.uri()).c_str(), db->stat());
|
|
815
828
|
}
|
|
816
829
|
|
|
817
|
-
|
|
830
|
+
template <class Database_Ptr>
|
|
831
|
+
inline void createDatabase(Database_Ptr db, const _TCHAR* uri)
|
|
818
832
|
{
|
|
819
833
|
db->create(uri);
|
|
820
834
|
if (db->stat())
|
|
@@ -822,7 +836,8 @@ inline void createDatabase(database_ptr db, const _TCHAR* uri)
|
|
|
822
836
|
}
|
|
823
837
|
|
|
824
838
|
|
|
825
|
-
|
|
839
|
+
template <class Database_Ptr, class ConnectParam_type>
|
|
840
|
+
inline void openDatabase(Database_Ptr db, const ConnectParam_type& connPrams)
|
|
826
841
|
{
|
|
827
842
|
db->open(connPrams.uri(), connPrams.type(), connPrams.mode());
|
|
828
843
|
if (db->stat())
|
|
@@ -830,7 +845,8 @@ inline void openDatabase(database_ptr db, const connectParams& connPrams)
|
|
|
830
845
|
|
|
831
846
|
}
|
|
832
847
|
|
|
833
|
-
|
|
848
|
+
template <class Database_Ptr>
|
|
849
|
+
inline void openDatabase(Database_Ptr db, const _TCHAR* uri, short schemaType = 0, short mode = -2, const _TCHAR* dir = NULL,
|
|
834
850
|
const _TCHAR* ownername = NULL)
|
|
835
851
|
{
|
|
836
852
|
db->open(uri, schemaType, mode, dir, ownername);
|
|
@@ -839,7 +855,8 @@ inline void openDatabase(database_ptr db, const _TCHAR* uri, short schemaType =
|
|
|
839
855
|
|
|
840
856
|
}
|
|
841
857
|
|
|
842
|
-
|
|
858
|
+
template <class Database_Ptr>
|
|
859
|
+
inline void dropDatabase(Database_Ptr db)
|
|
843
860
|
{
|
|
844
861
|
db->drop();
|
|
845
862
|
if (db->stat())
|
|
@@ -847,7 +864,8 @@ inline void dropDatabase(database_ptr db)
|
|
|
847
864
|
|
|
848
865
|
}
|
|
849
866
|
|
|
850
|
-
|
|
867
|
+
template <class Database_Ptr>
|
|
868
|
+
inline table_ptr openTable(Database_Ptr db, const _TCHAR* name)
|
|
851
869
|
{
|
|
852
870
|
table_ptr p(db->openTable(name), releaseTable);
|
|
853
871
|
if (db->stat())
|
|
@@ -855,7 +873,9 @@ inline table_ptr openTable(database_ptr db, const _TCHAR* name)
|
|
|
855
873
|
return p;
|
|
856
874
|
|
|
857
875
|
}
|
|
858
|
-
|
|
876
|
+
|
|
877
|
+
template <class Database_Ptr>
|
|
878
|
+
inline void convertTable(Database_Ptr db, short tableid, copyDataFn func=NULL)
|
|
859
879
|
{
|
|
860
880
|
|
|
861
881
|
if (db->existsTableFile(tableid, NULL))
|
|
@@ -872,7 +892,8 @@ inline void convertTable(database_ptr db, short tableid, copyDataFn func=NULL)
|
|
|
872
892
|
}
|
|
873
893
|
}
|
|
874
894
|
|
|
875
|
-
|
|
895
|
+
template <class Database_Ptr>
|
|
896
|
+
inline void convertTable(Database_Ptr db, const _TCHAR* name, copyDataFn func=NULL)
|
|
876
897
|
{
|
|
877
898
|
assert(db->dbDef());
|
|
878
899
|
short tablenum = db->dbDef()->tableNumByName(name);
|
|
@@ -930,7 +951,7 @@ inline void insertRecord(const T& it, bool ncc = true)
|
|
|
930
951
|
{
|
|
931
952
|
it.tb().insert(ncc);
|
|
932
953
|
if (it.tb().stat() != 0)
|
|
933
|
-
nstable::throwError(std::_tstring(_T("Insert record")).c_str(), it.tb()
|
|
954
|
+
nstable::throwError(std::_tstring(_T("Insert record")).c_str(), &(it.tb()));
|
|
934
955
|
|
|
935
956
|
}
|
|
936
957
|
|
|
@@ -939,7 +960,7 @@ inline void updateRecord(const T& it, bool ncc = true)
|
|
|
939
960
|
{
|
|
940
961
|
it.tb().update((nstable::eUpdateType)ncc);
|
|
941
962
|
if (it.tb().stat() != 0)
|
|
942
|
-
nstable::throwError(std::_tstring(_T("Update record")).c_str(), it.tb()
|
|
963
|
+
nstable::throwError(std::_tstring(_T("Update record")).c_str(), &(it.tb()));
|
|
943
964
|
|
|
944
965
|
}
|
|
945
966
|
|
|
@@ -948,7 +969,7 @@ inline void updateRecord(fields& fd, char_td keynum)
|
|
|
948
969
|
fd.tb().setKeyNum(keynum);
|
|
949
970
|
fd.tb().update(nstable::changeInKey);
|
|
950
971
|
if (fd.tb().stat() != 0)
|
|
951
|
-
nstable::throwError(std::_tstring(_T("Update record")).c_str(), fd.tb()
|
|
972
|
+
nstable::throwError(std::_tstring(_T("Update record")).c_str(), &(fd.tb()));
|
|
952
973
|
}
|
|
953
974
|
|
|
954
975
|
inline void deleteRecord(fields& fd, const char_td keynum)
|
|
@@ -956,14 +977,14 @@ inline void deleteRecord(fields& fd, const char_td keynum)
|
|
|
956
977
|
fd.tb().setKeyNum(keynum);
|
|
957
978
|
fd.tb().del(true/*inKey*/);
|
|
958
979
|
if (fd.tb().stat() != 0)
|
|
959
|
-
nstable::throwError(std::_tstring(_T("Update record")).c_str(), fd.tb()
|
|
980
|
+
nstable::throwError(std::_tstring(_T("Update record")).c_str(), &(fd.tb()));
|
|
960
981
|
}
|
|
961
982
|
|
|
962
983
|
template <class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7>
|
|
963
984
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
964
985
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
|
|
965
986
|
{
|
|
966
|
-
|
|
987
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
|
|
967
988
|
fields fd(tb);
|
|
968
989
|
deleteRecord(fd, keynum);
|
|
969
990
|
}
|
|
@@ -972,7 +993,7 @@ template <class T0, class T1, class T2, class T3, class T4, class T5, class T6>
|
|
|
972
993
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
973
994
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5, const T6 kv6)
|
|
974
995
|
{
|
|
975
|
-
|
|
996
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6);
|
|
976
997
|
fields fd(tb);
|
|
977
998
|
deleteRecord(fd, keynum);
|
|
978
999
|
}
|
|
@@ -981,7 +1002,7 @@ template <class T0, class T1, class T2, class T3, class T4, class T5>
|
|
|
981
1002
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
982
1003
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4, const T5 kv5)
|
|
983
1004
|
{
|
|
984
|
-
|
|
1005
|
+
keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5);
|
|
985
1006
|
fields fd(tb);
|
|
986
1007
|
deleteRecord(fd, keynum);
|
|
987
1008
|
}
|
|
@@ -990,7 +1011,7 @@ template <class T0, class T1, class T2, class T3, class T4>
|
|
|
990
1011
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
991
1012
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3,const T4 kv4)
|
|
992
1013
|
{
|
|
993
|
-
|
|
1014
|
+
keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3, kv4);
|
|
994
1015
|
fields fd(tb);
|
|
995
1016
|
deleteRecord(fd, keynum);
|
|
996
1017
|
}
|
|
@@ -999,7 +1020,7 @@ template <class T0, class T1, class T2, class T3>
|
|
|
999
1020
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
1000
1021
|
,const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3)
|
|
1001
1022
|
{
|
|
1002
|
-
|
|
1023
|
+
keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
|
|
1003
1024
|
fields fd(tb);
|
|
1004
1025
|
deleteRecord(fd, keynum);
|
|
1005
1026
|
}
|
|
@@ -1008,7 +1029,7 @@ template <class T0, class T1, class T2>
|
|
|
1008
1029
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
1009
1030
|
,const T0 kv0, const T1 kv1, const T2 kv2)
|
|
1010
1031
|
{
|
|
1011
|
-
|
|
1032
|
+
keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
|
|
1012
1033
|
fields fd(tb);
|
|
1013
1034
|
deleteRecord(fd, keynum);
|
|
1014
1035
|
}
|
|
@@ -1017,7 +1038,7 @@ template <class T0, class T1>
|
|
|
1017
1038
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
1018
1039
|
,const T0 kv0, const T1 kv1)
|
|
1019
1040
|
{
|
|
1020
|
-
|
|
1041
|
+
keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
|
|
1021
1042
|
fields fd(tb);
|
|
1022
1043
|
deleteRecord(fd, keynum);
|
|
1023
1044
|
}
|
|
@@ -1026,7 +1047,7 @@ template <class T0>
|
|
|
1026
1047
|
void deleteRecord(table_ptr tb, const char_td keynum
|
|
1027
1048
|
,const T0 kv0)
|
|
1028
1049
|
{
|
|
1029
|
-
|
|
1050
|
+
keyValueSetter<T0>::set(tb, keynum, kv0);
|
|
1030
1051
|
fields fd(tb);
|
|
1031
1052
|
deleteRecord(fd, keynum);
|
|
1032
1053
|
}
|
|
@@ -1036,7 +1057,7 @@ inline void deleteRecord(const T& it)
|
|
|
1036
1057
|
{
|
|
1037
1058
|
it.tb().del(false/*inKey*/);
|
|
1038
1059
|
if (it.tb().stat() != 0)
|
|
1039
|
-
nstable::throwError(std::_tstring(_T("Delete record")).c_str(), it.tb()
|
|
1060
|
+
nstable::throwError(std::_tstring(_T("Delete record")).c_str(), &(it.tb()));
|
|
1040
1061
|
}
|
|
1041
1062
|
|
|
1042
1063
|
|