transactd 1.1.2 → 1.2.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 +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
|
|