1 #ifndef BZS_DB_PROTOCOL_TDAP_CLIENT_TRDBOOSTAPI_H
2 #define BZS_DB_PROTOCOL_TDAP_CLIENT_TRDBOOSTAPI_H
21 #include "trdboostapiInternal.h"
22 #include <boost/shared_ptr.hpp>
23 #include <boost/noncopyable.hpp>
26 #include <bzs/db/protocol/tdap/uri.h>
29 #if (!defined(__clang__) && \
30 ((__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)))
31 #error "Your GCC version is too old. 4.3 or later versions are required."
70 #pragma warning(disable : 4996)
74 _TCHAR m_buf[MAX_PATH];
80 const _TCHAR* dbname,
const _TCHAR* schemaTable
81 ,
const _TCHAR* userName=NULL,
const _TCHAR* passwd=NULL)
82 : m_type(TYPE_SCHEMA_BDF), m_mode(TD_OPEN_READONLY)
84 if (!protocol || !hostOrIp || !dbname)
return;
86 _TCHAR dbf[MAX_PATH]={0x00};
87 const _TCHAR* ext = _T(
".bdf");
88 if (protocol[0] ==
'b')
90 if (_tcscmp(schemaTable, _T(
"file")) == 0 ||
91 _tcscmp(schemaTable, _T(
"FILE")) == 0)
94 m_type = TYPE_SCHEMA_DDF;
96 if (_tcsstr(schemaTable, _T(
".ddf")) || _tcsstr(schemaTable, _T(
".DDF")))
98 m_type = TYPE_SCHEMA_DDF;
102 if (schemaTable && schemaTable[0])
105 if (_tcscmp(schemaTable, TRANSACTD_SCHEMANAME)==0)
107 _stprintf_s(dbf, MAX_PATH, _T(
"dbfile=%s%s"), schemaTable, ext);
109 if (userName == NULL || (userName[0] == 0x00))
110 _stprintf_s(m_buf, MAX_PATH, _T(
"%s://%s/%s?%s"), protocol,
111 hostOrIp, dbname, dbf);
114 if (!passwd) passwd = _T(
"");
115 _stprintf_s(m_buf, MAX_PATH, _T(
"%s://%s@%s/%s?%s&pwd=%s"),
116 protocol, userName, hostOrIp, dbname, dbf, passwd);
120 : m_type(TYPE_SCHEMA_BDF), m_mode(TD_OPEN_READONLY)
122 _tcscpy_s(m_buf, MAX_PATH, uri);
123 size_t len = _tcslen(uri);
127 _tcscpy_s(tmp, 10, uri + len - 4);
133 if (_tcscmp(tmp, _T(
".DDF"))==0)
134 m_type = TYPE_SCHEMA_DDF;
137 inline void setMode(char_td v) { m_mode = v; }
143 if ((_tcslen(m_buf) > 3) && m_buf[_tcslen(m_buf) - 3] == _T(
'.'))
145 m_buf[_tcslen(m_buf) - 3] = 0x00;
146 if (v == TYPE_SCHEMA_BDF)
147 _tcscat_s(m_buf, MAX_PATH, _T(
"bdf"));
149 _tcscat_s(m_buf, MAX_PATH, _T(
"ddf"));
155 inline const _TCHAR*
uri()
const
160 inline char_td
mode()
const {
return m_mode; };
162 inline short type()
const {
return m_type; };
164 #pragma warning(default : 4996)
177 virtual void reset(
int) = 0;
181 virtual void unUse() = 0;
183 virtual __int64
option() = 0;
184 virtual void beginTrn(
short bias) = 0;
185 virtual void endTrn() = 0;
190 virtual const _TCHAR*
uri()
const = 0;
191 virtual char_td
mode()
const = 0;
193 virtual short_td
stat()
const = 0;
194 virtual uchar_td*
clientID()
const = 0;
199 :
public std::iterator<std::bidirectional_iterator_tag, fields, void>
204 ushort_td m_lockBias;
207 inline tableIterator(
table&
tb, ushort_td lockBias = LOCK_BIAS_DEFAULT) : m_tb(tb), m_fds(tb),m_lockBias(lockBias)
209 readStatusCheck(tb, _T(
"tableIterator"));
222 T::increment(m_tb, m_lockBias);
228 T::decrement(m_tb, m_lockBias);
247 static const int filter_validate_value = 0;
248 static const int filter_validate_block = 1;
249 static const int filter_invalidate_value = 2;
253 #define VALIDATION_FUNC(FUNC_PTR, PTR) boost::bind(FUNC_PTR, PTR, fields_type)
257 :
public std::iterator<std::input_iterator_tag, fields, void>
261 inline int callFunc()
263 int v = m_func(*m_it);
264 if (v == filter_invalidate_value)
265 m_it.tb().setStat(STATUS_EOF);
273 if (v == filter_validate_block)
288 }
while (v == filter_validate_block);
294 return m_it.operator==(v.m_it);
299 return m_it.operator!=(v.m_it);
302 inline bool isEnd() {
return m_it.isEnd(); }
322 tb->seekFirst(lockBias);
325 tb->seekGreater(
true, lockBias);
328 tb->seekGreater(
false, lockBias);
332 readStatusCheck(*tb, _T(
"readIndex"));
346 tb->seekLast(lockBias);
349 tb->seekLessThan(
true, lockBias);
352 tb->seekLessThan(
false, lockBias);
356 readStatusCheck(*tb, _T(
"readIndexRv"));
363 T func, ushort_td lockBias = LOCK_BIAS_DEFAULT)
365 tb->setKeyNum(keynum);
376 char_td keynum, T func, ushort_td lockBias = LOCK_BIAS_DEFAULT)
378 tb->setKeyNum(keynum);
387 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
391 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4,
392 const T5 kv5,
const T6 kv6,
const T7 kv7)
394 keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::set(
395 tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
401 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
403 const char_td keynum,
const T0 kv0,
404 const T1 kv1,
const T2 kv2,
const T3 kv3,
405 const T4 kv4,
const T5 kv5,
const T6 kv6)
407 keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2,
412 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5>
414 const char_td keynum,
const T0 kv0,
415 const T1 kv1,
const T2 kv2,
const T3 kv3,
416 const T4 kv4,
const T5 kv5)
418 keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3,
423 template <
class T0,
class T1,
class T2,
class T3,
class T4>
426 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4)
428 keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3,
433 template <
class T0,
class T1,
class T2,
class T3>
435 const char_td keynum,
const T0 kv0,
436 const T1 kv1,
const T2 kv2,
const T3 kv3)
438 keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
442 template <
class T0,
class T1,
class T2>
444 const char_td keynum,
const T0 kv0,
445 const T1 kv1,
const T2 kv2)
447 keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
451 template <
class T0,
class T1>
453 const char_td keynum,
const T0 kv0,
456 keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
462 const char_td keynum,
const T0 kv0)
464 keyValueSetter<T0>::set(tb, keynum, kv0);
469 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
473 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4,
474 const T5 kv5,
const T6 kv6,
const T7 kv7)
476 keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::set(
477 tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
483 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
485 const char_td keynum,
const T0 kv0,
486 const T1 kv1,
const T2 kv2,
const T3 kv3,
487 const T4 kv4,
const T5 kv5,
const T6 kv6)
489 keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2,
494 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5>
496 const char_td keynum,
const T0 kv0,
497 const T1 kv1,
const T2 kv2,
const T3 kv3,
498 const T4 kv4,
const T5 kv5)
500 keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3,
505 template <
class T0,
class T1,
class T2,
class T3,
class T4>
508 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4)
510 keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3,
515 template <
class T0,
class T1,
class T2,
class T3>
517 const char_td keynum,
const T0 kv0,
518 const T1 kv1,
const T2 kv2,
const T3 kv3)
520 keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
524 template <
class T0,
class T1,
class T2>
526 const char_td keynum,
const T0 kv0,
527 const T1 kv1,
const T2 kv2)
529 keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
533 template <
class T0,
class T1>
535 const char_td keynum,
const T0 kv0,
538 keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
544 const char_td keynum,
const T0 kv0)
546 keyValueSetter<T0>::set(tb, keynum, kv0);
553 tb->stepFirst(lockBias);
559 tb->stepLast(lockBias);
565 bool serverPrepare =
false)
567 pq_handle stmt = tb->setQuery(&q, serverPrepare);
568 readStatusCheck(*tb, _T(
"setQuery"));
582 pq_handle stmt = tb->prepare(&q, serverPrepare);
583 readStatusCheck(*tb, _T(
"prepare"));
587 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
590 const T0 kv0,
const T1 kv1,
const T2 kv2,
const T3 kv3,
591 const T4 kv4,
const T5 kv5,
const T6 kv6,
const T7 kv7)
594 keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::set(
595 tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
603 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
605 const T0 kv0,
const T1 kv1,
const T2 kv2,
const T3 kv3,
606 const T4 kv4,
const T5 kv5,
const T6 kv6)
609 keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2,
615 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4,
class T5>
617 const T0 kv0,
const T1 kv1,
const T2 kv2,
const T3 kv3,
618 const T4 kv4,
const T5 kv5)
621 keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3,
627 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4>
629 const T0 kv0,
const T1 kv1,
const T2 kv2,
const T3 kv3,
633 keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3,
639 template <
class Q,
class T0,
class T1,
class T2,
class T3>
641 const T0 kv0,
const T1 kv1,
const T2 kv2,
const T3 kv3)
644 keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
649 template <
class Q,
class T0,
class T1,
class T2>
651 const T0 kv0,
const T1 kv1,
const T2 kv2)
654 keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
659 template <
class Q,
class T0,
class T1>
661 const T0 kv0,
const T1 kv1)
664 keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
669 template <
class Q,
class T0>
674 keyValueSetter<T0>::set(tb, keynum, kv0);
680 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
683 const Q& q,
const T0 kv0,
const T1 kv1,
684 const T2 kv2,
const T3 kv3,
const T4 kv4,
685 const T5 kv5,
const T6 kv6,
const T7 kv7)
688 keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::set(
689 tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
696 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
698 const Q& q,
const T0 kv0,
const T1 kv1,
699 const T2 kv2,
const T3 kv3,
const T4 kv4,
700 const T5 kv5,
const T6 kv6)
703 keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2,
709 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4,
class T5>
712 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4,
const T5 kv5)
715 keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3,
721 template <
class Q,
class T0,
class T1,
class T2,
class T3,
class T4>
723 const Q& q,
const T0 kv0,
const T1 kv1,
724 const T2 kv2,
const T3 kv3,
const T4 kv4)
727 keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3,
733 template <
class Q,
class T0,
class T1,
class T2,
class T3>
735 const Q& q,
const T0 kv0,
const T1 kv1,
736 const T2 kv2,
const T3 kv3)
739 keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
744 template <
class Q,
class T0,
class T1,
class T2>
746 const Q& q,
const T0 kv0,
const T1 kv1,
750 keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
755 template <
class Q,
class T0,
class T1>
757 const Q& q,
const T0 kv0,
const T1 kv1)
760 keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
765 template <
class Q,
class T0>
767 const Q& q,
const T0 kv0)
770 keyValueSetter<T0>::set(tb, keynum, kv0);
800 template <
class Database_Ptr>
803 return db && db->isOpened() && (_tcsicmp(param->
uri(), db->uri()) == 0) &&
804 (param->
mode() == db->mode());
816 if (nsdatabase::testTablePtr(p))
833 template <
class Database_Ptr>
836 db->disconnect(connPrams.
uri());
843 template <
class Database_Ptr>
inline void disconnect(Database_Ptr db)
850 template <
class Database_Ptr>
851 inline void throwDbError(Database_Ptr db,
const _TCHAR* caption,
const _TCHAR* uri)
854 tdap::stripPasswd(uri, tmp, MAX_PATH);
858 template <
class Database_Ptr,
class ConnectParam_type>
859 inline void connect(Database_Ptr db,
const ConnectParam_type& connPrams,
862 db->connect(connPrams.uri(), newConnection);
864 throwDbError(db, _T(
"Connect database : "), connPrams.uri());
867 template <
class Database_Ptr>
870 db->create(connPrams.
uri(), connPrams.
type());
875 template <
class Database_Ptr>
877 short type = TYPE_SCHEMA_BDF)
879 db->create(uri, type);
884 template <
class Database_Ptr,
class ConnectParam_type>
885 inline void openDatabase(Database_Ptr db,
const ConnectParam_type& connPrams)
887 db->open(connPrams.uri(), connPrams.type(), connPrams.mode());
889 throwDbError(db, _T(
"Open database : "), connPrams.uri());
892 template <
class Database_Ptr>
894 short schemaType = 0,
short mode = -2,
895 const _TCHAR* dir = NULL,
896 const _TCHAR* ownername = NULL)
898 db->open(uri, schemaType, mode, dir, ownername);
903 template <
class Database_Ptr>
908 connect(db, connPrams, newConnection);
912 template <
class Database_Ptr>
inline void dropDatabase(Database_Ptr db,
const _TCHAR* uri=NULL)
915 if (db->stat() && (db->stat() != ERROR_NO_DATABASE))
916 throwDbError(db, _T(
"Drop database : "), uri ? uri : _T(
""));
919 template <
class Database_Ptr>
921 short mode = TD_OPEN_NORMAL,
922 bool autoCreate =
true,
const _TCHAR* ownerName = NULL,
923 const _TCHAR* uri = NULL)
925 table_ptr p(db->openTable(name, mode, autoCreate, ownerName, uri),
933 template <
class Database_Ptr>
935 short mode = TD_OPEN_NORMAL,
936 bool autoCreate =
true,
const _TCHAR* ownerName = NULL,
937 const _TCHAR* uri = NULL)
939 table_ptr p(db->openTable(tableid, mode, autoCreate, ownerName, uri),
945 _stprintf_s(buf, 50, _T(
"Open table id = %d"), tableid);
951 template <
class Database_Ptr>
952 inline void dropTable(Database_Ptr db,
const _TCHAR* name)
960 template <
class Database_Ptr>
964 if (db->existsTableFile(tableid, NULL))
966 db->setOnCopyData(func);
967 db->convertTable(tableid,
false, NULL);
968 db->setOnCopyData(NULL);
972 db->dbDef()->popBackup(tableid);
979 template <
class Database_Ptr>
984 short tablenum = db->dbDef()->tableNumByName(name);
988 template <
class Database_Ptr>
989 void execSql(Database_Ptr db,
const char* sql)
994 MultiByteToWideChar(CP_UTF8, 0, sql, -1, buf, 1024);
995 validateStatus(db, buf);
997 validateStatus(db, sql);
1002 unsigned short charsetIndex)
1010 if (def->
stat() != 0)
1012 (std::_tstring(_T(
"Insert tabledef ")) + name).c_str(),
1019 if (def->
stat() != 0)
1028 if (def->
stat() != 0)
1034 const _TCHAR* name, uchar_td type, ushort_td len)
1037 if (def->
stat() != 0)
1039 (std::_tstring(_T(
"Insert fielddef ")) + name).c_str(),
1051 if (def->
stat() != 0)
1058 if (def->
stat() != 0)
1067 if (def->
stat() != 0)
1074 if (def->
stat() != 0)
1087 if (def->
stat() != 0)
1100 if (def->
stat() != 0)
1113 template <
class T>
inline table* getTable(T& it)
1118 template <>
inline table* getTable(
table_ptr& tb)
1123 template <>
inline table* getTable(table*& tb)
1132 table* tb = getTable(some);
1134 if (tb->
stat() != 0)
1149 table* tb = getTable(some);
1151 if (tb->
stat() != 0)
1157 table* tb = getTable(some);
1159 if (tb->
stat() != 0)
1165 table* tb = getTable(some);
1169 if (tb->
stat() != 0)
1173 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
1176 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4,
1177 const T5 kv5,
const T6 kv6,
const T7 kv7)
1179 keyValueSetter<T0, T1, T2, T3, T4, T5, T6, T7>::set(
1180 tb, keynum, kv0, kv1, kv2, kv3, kv4, kv5, kv6, kv7);
1186 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
1188 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4,
1189 const T5 kv5,
const T6 kv6)
1191 keyValueSetter<T0, T1, T2, T3, T4, T5, T6>::set(tb, keynum, kv0, kv1, kv2,
1192 kv3, kv4, kv5, kv6);
1197 template <
class T0,
class T1,
class T2,
class T3,
class T4,
class T5>
1199 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4,
1202 keyValueSetter<T0, T1, T2, T3, T4, T5>::set(tb, keynum, kv0, kv1, kv2, kv3,
1208 template <
class T0,
class T1,
class T2,
class T3,
class T4>
1210 const T1 kv1,
const T2 kv2,
const T3 kv3,
const T4 kv4)
1212 keyValueSetter<T0, T1, T2, T3, T4>::set(tb, keynum, kv0, kv1, kv2, kv3,
1218 template <
class T0,
class T1,
class T2,
class T3>
1220 const T1 kv1,
const T2 kv2,
const T3 kv3)
1222 keyValueSetter<T0, T1, T2, T3>::set(tb, keynum, kv0, kv1, kv2, kv3);
1227 template <
class T0,
class T1,
class T2>
1229 const T1 kv1,
const T2 kv2)
1231 keyValueSetter<T0, T1, T2>::set(tb, keynum, kv0, kv1, kv2);
1236 template <
class T0,
class T1>
1240 keyValueSetter<T0, T1>::set(tb, keynum, kv0, kv1);
1248 keyValueSetter<T0>::set(tb, keynum, kv0);
1254 template <
class T,
class F>
void for_each(T iterator, F func)
1256 std::for_each(iterator, iterator, func);
1282 : m_db(db), m_bias(bias){};
1285 if (m_db->enableTrn())
1288 inline void begin() { m_db->beginTrn(m_bias); }
1289 inline void end() { m_db->endTrn(); }
1290 inline void abort() { m_db->abortTrn(); }
1307 m_db->beginSnapshot(bias, bpos);
1314 m_db->endSnapshot();
1334 m_tb->beginBulkInsert(bufsize);
1342 m_tb->beginBulkInsert(bufsize);
1354 #endif // BZS_DB_PROTOCOL_TDAP_CLIENT_TRDBOOSTAPI_H
~snapshot()
Definition: trdboostapi.h:1318
Definition: trdboostapi.h:53
void renumberTable(short oldIndex, short newIndex)
autoBulkinsert(table_ptr tb, int bufsize=BULKBUFSIZE)
Definition: trdboostapi.h:1332
keydef * insertKey(dbdef *def, short tableid, short insertIndex)
Definition: trdboostapi.h:1055
ushort_td len
Definition: tdapSchema.h:340
virtual void use(const connectParams *param=NULL)=0
virtual void reset(int)=0
tableIterator & operator++()
Definition: trdboostapi.h:220
snapshot(DB db, short bias=CONSISTENT_READ, binlogPos *bpos=NULL)
Definition: trdboostapi.h:1305
バルクインサート自動開始終了クラス
Definition: trdboostapi.h:1327
static database * create()
virtual void beginTrn(short bias)=0
void openDatabase(Database_Ptr db, const ConnectParam_type &connPrams)
Definition: trdboostapi.h:885
virtual uchar_td * clientID() const =0
eStepOpType
ステップオペレーションタイプ
Definition: trdboostapi.h:57
void del(bool in_key=false)
Definition: nsTable.h:179
pq_handle setQuery(const queryBase *query, bool serverPrepare=false)
void for_each(T iterator, F func)
Definition: trdboostapi.h:1254
~autoBulkinsert()
Definition: trdboostapi.h:1345
void execSql(Database_Ptr db, const char *sql)
Definition: trdboostapi.h:989
virtual char_td mode() const =0
テーブルイテレータクラステンプレート
Definition: trdboostapi.h:198
autoBulkinsert(T &tba, int bufsize=BULKBUFSIZE)
Definition: trdboostapi.h:1339
transaction(DB db, short bias=SINGLELOCK_READ_COMMITED+NOWAIT_WRITE)
Definition: trdboostapi.h:1280
virtual void setOption(__int64 v)=0
void deleteKey(short tableIndex, short deleteIndex)
void setMode(char_td v)
Definition: trdboostapi.h:137
void deleteRecord(T &some)
Definition: trdboostapi.h:1155
pq_handle prepare(table_ptr &tb, const queryBase &q, bool serverPrepare=false)
Definition: trdboostapi.h:580
トランザクション自動ロールバックオブジェクト
Definition: trdboostapi.h:1274
void begin()
Definition: trdboostapi.h:1288
fields operator*()
Definition: trdboostapi.h:277
pq_handle setQuery(table_ptr &tb, const queryBase &q, bool serverPrepare=false)
Definition: trdboostapi.h:564
virtual void beginSnapshot(short bias=CONSISTENT_READ, binlogPos *bpos=NULL)=0
void setTableName(const char *s)
static void throwError(const _TCHAR *caption, short statusCode)
bool operator!=(const tableIterator &v)
Definition: trdboostapi.h:234
filterdIterator(T &it, validationFunc func)
Definition: trdboostapi.h:270
virtual ~idatabaseManager()
Definition: trdboostapi.h:176
void insertTable(dbdef *def, short id, const _TCHAR *name, unsigned short charsetIndex)
Definition: trdboostapi.h:1001
virtual short_td stat() const =0
void setType(short v)
Definition: trdboostapi.h:139
クエリー(フィルター)作成の補助をするためのベースクラス
Definition: table.h:354
boost::shared_ptr< idatabaseManager > dbmanager_ptr
Definition: trdboostapi.h:1260
Definition: trdboostapi.h:52
tableIterator< indexNavi > indexIterator
Definition: trdboostapi.h:239
ushort_td id
Definition: tdapSchema.h:1200
void updateTableDef(dbdef *def, short tableid)
Definition: trdboostapi.h:1084
fielddef * insertField(dbdef *def, short tableid, short fieldNum, const _TCHAR *name, uchar_td type, ushort_td len)
Definition: trdboostapi.h:1033
スナップショット自動開始終了クラス
Definition: trdboostapi.h:1299
indexRvIterator readIndexRv(table_ptr tb, eIndexOpType op, ushort_td lockBias=LOCK_BIAS_DEFAULT)
Definition: trdboostapi.h:337
void findPrev(bool notIncCurrent=true)
database_ptr createAssociateObject(database_ptr db)
Definition: trdboostapi.h:827
virtual database * db() const =0
フィールド定義構造体
Definition: tdapSchema.h:419
stepRvIterator readStepRv(table_ptr tb, ushort_td lockBias=LOCK_BIAS_DEFAULT)
Definition: trdboostapi.h:557
virtual const _TCHAR * uri() const =0
void setName(const char *s)
tabledef * tableDefs(int index)
boost::shared_ptr< table > table_ptr
Definition: fields.h:251
virtual __int64 option()=0
フィールドコレクションクラス
Definition: fields.h:256
void throwDbError(Database_Ptr db, const _TCHAR *caption, const _TCHAR *uri)
Definition: trdboostapi.h:851
void setKeyNum(char_td v)
Definition: nsTable.h:171
tableIterator< indexRvNavi > indexRvIterator
Definition: trdboostapi.h:243
void abort()
Definition: trdboostapi.h:1290
findIterator find(table_ptr tb, const char_td keynum, const Q &q, const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
Definition: trdboostapi.h:589
~transaction()
Definition: trdboostapi.h:1283
findRvIterator findRv(table_ptr tb, const char_td keynum, const Q &q, const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
Definition: trdboostapi.h:682
filterdIterator< findIterator > filterdFindIterator
Definition: trdboostapi.h:307
void insertRecord(T &some, bool ncc=true)
Definition: trdboostapi.h:1130
Definition: trdboostapi.h:50
Definition: trdboostapi.h:67
short_td stat() const
Definition: dbDef.h:98
void setFileName(const char *s)
keydef * insertKey(short tableIndex, short insertIndex)
boost::function< int(const fields &)> validationFunc
Definition: trdboostapi.h:251
Definition: trdboostapi.h:65
transaction< dbmanager_ptr > dbmTransaction
Definition: trdboostapi.h:1297
T createDatabaseForConnectionPool(T &p)
snapshot< database_ptr > dbSnapshot
Definition: trdboostapi.h:1322
void deleteField(short tableIndex, short deleteIndex)
boost::shared_ptr< database > database_ptr
Definition: fields.h:250
eIndexOpType
インデックスオペレーションタイプ
Definition: trdboostapi.h:46
void(__STDCALL * copyDataFn)(database *db, table *tb, int recordCount, int count, bool &cancel)
Definition: database.h:55
tableIterator< indexRvFindNavi > findRvIterator
Definition: trdboostapi.h:244
virtual int enableTrn()=0
filterdIterator< indexRvIterator > filterdIndexRvIterator
Definition: trdboostapi.h:309
Definition: trdboostapi.h:51
テーブルスキーマ管理クラス (nocopyable noncreatable)
Definition: dbDef.h:46
テーブルアクセスクラス (nocopyable)
Definition: table.h:91
T & operator++()
Definition: trdboostapi.h:281
bool operator==(const tableIterator &v)
Definition: trdboostapi.h:232
bool operator==(const filterdIterator &v)
Definition: trdboostapi.h:292
void createDatabase(Database_Ptr db, const connectParams &connPrams)
Definition: trdboostapi.h:868
void setLockBias(ushort_td v)
Definition: trdboostapi.h:214
void connect(Database_Ptr db, const ConnectParam_type &connPrams, bool newConnection)
Definition: trdboostapi.h:859
short_td stat() const
Definition: nsTable.h:168
indexIterator readIndex_v(table_ptr tb, eIndexOpType op, const char_td keynum, const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
Definition: trdboostapi.h:390
void deleteField(dbdef *def, short tableid, short fieldNum)
Definition: trdboostapi.h:1048
eFindCurrntType
Definition: trdboostapi.h:63
void releaseDatabase(database *db)
Definition: trdboostapi.h:807
findIterator getFindIterator(indexIterator it, const queryBase &q, bool isCurrentValid)
Definition: trdboostapi.h:777
virtual bool isOpened() const =0
fields * operator->()
Definition: trdboostapi.h:218
uchar_td type
Definition: tdapSchema.h:339
connectParams(const _TCHAR *uri)
Definition: trdboostapi.h:119
filterdIterator< stepIterator > filterdStepIterator
Definition: trdboostapi.h:306
snapshot< idatabaseManager * > dbmSnapshot
Definition: trdboostapi.h:1325
キー定義構造体
Definition: tdapSchema.h:178
static void destroy(database *db)
void dropTable(Database_Ptr db, const _TCHAR *name)
Definition: trdboostapi.h:952
stepIterator readStep(table_ptr tb, ushort_td lockBias=LOCK_BIAS_DEFAULT)
Definition: trdboostapi.h:551
void deleteKey(dbdef *def, short tableid, short keynum)
Definition: trdboostapi.h:1064
fields & operator*()
Definition: trdboostapi.h:216
tableIterator< stepRvNavi > stepRvIterator
Definition: trdboostapi.h:245
tableIterator< indexFindNavi > findIterator
Definition: trdboostapi.h:240
Definition: trdboostapi.h:48
バイナリーログの情報
Definition: nsDatabase.h:62
table_ptr openTable(Database_Ptr db, const _TCHAR *name, short mode=TD_OPEN_NORMAL, bool autoCreate=true, const _TCHAR *ownerName=NULL, const _TCHAR *uri=NULL)
Definition: trdboostapi.h:920
データベースとテーブルを管理するインタフェース
Definition: trdboostapi.h:172
void updateRecord(fields &fd, const char_td keynum)
Definition: trdboostapi.h:1138
database_ptr createDatabaseObject()
Definition: trdboostapi.h:821
connectParams(const _TCHAR *protocol, const _TCHAR *hostOrIp, const _TCHAR *dbname, const _TCHAR *schemaTable, const _TCHAR *userName=NULL, const _TCHAR *passwd=NULL)
Definition: trdboostapi.h:79
void connectOpen(Database_Ptr db, const connectParams &connPrams, bool newConnection)
Definition: trdboostapi.h:904
const _TCHAR * uri() const
Definition: trdboostapi.h:155
virtual table_ptr table(const _TCHAR *name)=0
fields * operator->()
Definition: trdboostapi.h:279
tableIterator(table &tb, ushort_td lockBias=LOCK_BIAS_DEFAULT)
Definition: trdboostapi.h:207
bool isSameUri(const connectParams *param, const Database_Ptr &db)
Definition: trdboostapi.h:801
void disconnect(Database_Ptr db, const connectParams &connPrams)
Definition: trdboostapi.h:834
bool isEnd()
Definition: trdboostapi.h:236
void insertTable(tabledef *tableDef)
transaction< database_ptr > dbTransaction
Definition: trdboostapi.h:1294
short type() const
Definition: trdboostapi.h:162
bool operator!=(const filterdIterator &v)
Definition: trdboostapi.h:297
tableIterator & operator--()
Definition: trdboostapi.h:226
void end()
Definition: trdboostapi.h:1311
filterdIterator< findRvIterator > filterdFindRvIterator
Definition: trdboostapi.h:311
tableIterator< stepNavi > stepIterator
Definition: trdboostapi.h:241
void findNext(bool notIncCurrent=true)
void dropDatabase(Database_Ptr db, const _TCHAR *uri=NULL)
Definition: trdboostapi.h:912
filterdIterator< stepRvIterator > filterdStepRvIterator
Definition: trdboostapi.h:310
indexRvIterator readIndexRv_v(table_ptr tb, eIndexOpType op, const char_td keynum, const T0 kv0, const T1 kv1, const T2 kv2, const T3 kv3, const T4 kv4, const T5 kv5, const T6 kv6, const T7 kv7)
Definition: trdboostapi.h:472
filterdIterator< indexIterator > filterdIndexIterator
Definition: trdboostapi.h:305
Definition: trdboostapi.h:66
virtual void endSnapshot()=0
ushort_td insert(bool ncc=false)
Definition: nsTable.h:180
void renumberTable(dbdef *def, short id, short newid)
Definition: trdboostapi.h:1025
void updateTableDef(short tableIndex, bool forPsqlDdf=true)
データベースアクセスクラス
Definition: database.h:59
void releaseTable(table *p)
Definition: trdboostapi.h:812
const char * tableName() const
void deleteTable(dbdef *def, short id)
Definition: trdboostapi.h:1016
short validateTableDef(short tableIndex)
Definition: trdboostapi.h:60
void convertTable(Database_Ptr db, short tableid, copyDataFn func=NULL)
Definition: trdboostapi.h:961
eUpdateType
更新オペレーションの対象とカレント移動のタイプ
Definition: nsTable.h:51
void update(eUpdateType type=changeCurrentCc)
Definition: nsTable.h:178
const _TCHAR * c_str(const btrDate &d)
Definition: btrDate.h:232
void synchronizeSeverSchema(dbdef *def, short tableid)
Definition: trdboostapi.h:1097
Definition: trdboostapi.h:54
void deleteTable(short tableIndex)
char_td mode() const
Definition: trdboostapi.h:160
void synchronizeSeverSchema(short tableIndex)
void validateTableDef(dbdef *def, short tableid)
Definition: trdboostapi.h:1071
uchar_td charsetIndex
Definition: tdapSchema.h:1227
Definition: trdboostapi.h:49
テーブル定義構造体
Definition: tdapSchema.h:1051
フィルタリングイテレータアダプターテンプレート
Definition: trdboostapi.h:256
table & tb() const
Definition: trdboostapi.h:212
Definition: trdboostapi.h:59
table & tb() const
Definition: fields.h:288
データベースへの接続文字列生成ヘルパークラス
Definition: trdboostapi.h:72
virtual void abortTrn()=0
fielddef * insertField(short tableIndex, short insertIndex)
void end()
Definition: trdboostapi.h:1289
indexIterator readIndex(table_ptr tb, eIndexOpType op, ushort_td lockBias=LOCK_BIAS_DEFAULT)
Definition: trdboostapi.h:313
bool isEnd()
Definition: trdboostapi.h:302