1 #ifndef BZS_DB_PROTOCOL_TDAP_TDAPCAPI_H
2 #define BZS_DB_PROTOCOL_TDAP_TDAPCAPI_H
21 #include <bzs/env/compiler.h>
26 typedef unsigned int uint_td;
27 typedef unsigned short ushort_td;
29 typedef short short_td;
30 typedef unsigned char uchar_td;
32 typedef int percentage_td;
33 typedef ushort_td keylen_td;
36 #define MAX_BOOKMARK_SIZE 112 // innodb unique key max 767 byte
39 uchar_td
val[MAX_BOOKMARK_SIZE];
51 #if (defined(__BORLANDC__) && !defined(__clang__))
52 typedef short __stdcall (*dllUnloadCallback)();
56 typedef short(__STDCALL* dllUnloadCallback)();
61 extern __declspec(dllimport) short_td
62 __stdcall BTRCALLID(ushort_td op,
void* posb,
void* data, uint_td* datalen,
63 void* keybuf, keylen_td keylen, char_td keyNum,
66 extern __declspec(dllimport) short_td
67 __stdcall CallbackRegist(dllUnloadCallback func);
70 typedef short_td(__STDCALL* BTRCALLID_PTR)(ushort_td,
void*,
void*, uint_td*,
71 void*, keylen_td, char_td,
74 typedef void(__STDCALL* WIN_TPOOL_SHUTDOWN_PTR)();
78 #define POS_BLOCK_SIZE 128
79 #define BTRV_BOOKMARK_SIZE 4
81 #define MAX_KEYLEN 0X3FF // 1023
83 #define BTRV_MAX_DATA_SIZE 57000
84 #define TDAP_MAX_DATA_SIZE 6291456 // 6Mbyte
85 #define BOOKMARK_ALLOC_SIZE 40960
90 #define TD_OPENTABLE 0
91 #define TD_CLOSETABLE 1
92 #define TD_REC_INSERT 2
93 #define TD_REC_UPDATE 3
94 #define TD_REC_DELETE 4
98 #define TD_KEY_AFTER 8
99 #define TD_KEY_OR_AFTER 9
100 #define TD_KEY_BEFORE 10
101 #define TD_KEY_OR_BEFORE 11
102 #define TD_KEY_FIRST 12
103 #define TD_KEY_LAST 13
104 #define TD_CREATETABLE 14
105 #define TD_TABLE_INFO 15
106 #define TD_SETDIRECTORY 17
107 #define TD_GETDIRECTORY 18
108 #define TD_BEGIN_TRANSACTION 19
109 #define TD_END_TRANSACTION 20
110 #define TD_ABORT_TRANSACTION 21
111 #define TD_BOOKMARK 22
112 #define TD_MOVE_BOOKMARK 23
113 #define TD_POS_NEXT 24
114 #define TD_STOP_ENGINE 25
115 #define TD_VERSION 26
117 #define TD_RESET_CLIENT 28
118 #define TD_SET_OWNERNAME 29
119 #define TD_CLEAR_OWNERNAME 30
120 #define TD_BUILD_INDEX 31
121 #define TD_DROP_INDEX 32
122 #define TD_POS_FIRST 33
123 #define TD_POS_LAST 34
124 #define TD_POS_PREV 35
125 #define TD_KEY_NEXT_MULTI 36
126 #define TD_KEY_PREV_MULTI 37
127 #define TD_POS_NEXT_MULTI 38
128 #define TD_POS_PREV_MULTI 39
129 #define TD_INSERT_BULK 40
130 #define TD_BACKUPMODE 42
131 #define TD_MOVE_PER 44
132 #define TD_GET_PER 45
133 #define TD_UPDATE_PART 53
134 #define TD_KEY_EQUAL_KO 55
135 #define TD_KEY_NEXT_KO 56
136 #define TD_KEY_PREV_KO 57
137 #define TD_KEY_GT_KO 58
138 #define TD_KEY_GE_KO 59
139 #define TD_KEY_LT_KO 60
140 #define TD_KEY_LE_KO 61
141 #define TD_KEY_FIRST_KO 62
142 #define TD_KEY_LAST_KO 63
143 #define TD_CREATE_TEMP 64
144 #define TD_TABLE_INFO_EX 65
145 #define TD_REC_UPDATEATKEY 70
146 #define TD_REC_DELLETEATKEY 71
147 #define TD_KEY_GE_NEXT_MULTI 72
148 #define TD_KEY_LE_PREV_MULTI 73
149 #define TD_FILTER_PREPARE 74
150 #define TD_CONNECT 78
151 #define TD_BEGIN_SHAPSHOT 88
152 #define TD_END_SNAPSHOT 89
153 #define TD_AUTOMEKE_SCHEMA 90
154 #define TD_GETSERVER_CHARSET 91
155 #define TD_ADD_SENDBLOB 92
156 #define TD_GET_BLOB_BUF 93
157 #define TD_STASTISTICS 94
158 #define TD_KEY_SEEK_MULTI 95
159 #define TD_ACL_RELOAD 96
160 #define TD_RECONNECT 97
164 #define CR_SUBOP_DROP -128
165 #define CR_SUBOP_RENAME -127
166 #define CR_SUBOP_SWAPNAME -126
167 #define CR_SUBOP_BY_FILESPEC -1
168 #define CR_SUBOP_BY_FILESPEC_NOCKECK 0
169 #define CR_SUBOP_BY_TABLEDEF 1
170 #define CR_SUBOP_BY_TABLEDEF_NOCKECK 2
172 #define CR_SUB_FLAG_EXISTCHECK -1
176 #define TD_ASBLOB_ENDROW -125
180 #define TD_STSTCS_READ 0
181 #define TD_STSTCS_DISCONNECT_ONE 1
182 #define TD_STSTCS_DISCONNECT_ALL 2
183 #define TD_STSTCS_DATABASE_LIST 3
184 #define TD_STSTCS_SYSTEM_VARIABLES 4
185 #define TD_STSTCS_SCHEMA_TABLE_LIST 5
189 #define LG_SUBOP_CONNECT 0
190 #define LG_SUBOP_DISCONNECT 1
191 #define LG_SUBOP_NEWCONNECT 3
192 #define LG_SUBOP_RECONNECT 4
193 #define LG_SUBOP_DISCONNECT_EX 5 //for reconnect test
206 #define ft_lstring 10
207 #define ft_zstring 11
210 #define ft_uinteger 14
211 #define ft_autoinc 15
213 #define ft_numericsts 17
214 #define ft_numericsa 18
215 #define ft_currency 19
216 #define ft_timestamp 20
218 #define ft_reserve22 22
219 #define ft_reserve23 23
220 #define ft_reserve24 24
221 #define ft_wstring 25
222 #define ft_wzstring 26
224 #define ft_datetime 30
225 #define ft_myvarchar 40
226 #define ft_myvarbinary 41
227 #define ft_mywvarchar 42
228 #define ft_mywvarbinary 43
230 #define ft_mywchar 45
233 #define ft_mydatetime 48
234 #define ft_mytimestamp 49
237 #define ft_autoIncUnsigned 52
238 #define ft_myfixedbinary 53
240 #define ft_nullindicator 255
244 #define charset_none 0
245 #define charset_latin1 1
246 #define charset_ascii 2
247 #define charset_sjis 3
248 #define charset_cp932 4
250 #define charset_utf8 100
251 #define charset_utf8mb4 101
252 #define charset_usc2 102
257 #define CMPLOGICAL_VAR_COMP_ALL 16
258 #define CMPLOGICAL_CMPACS 32 // no support
260 #define CMPLOGICAL_FIELD 64
261 #define CMPLOGICAL_CASEINSENSITIVE 128 // not case-sensitive
266 #define LOCK_BIAS_DEFAULT 0
267 #define LOCK_SINGLE_WAIT 100
268 #define LOCK_SINGLE_NOWAIT 200
269 #define LOCK_MULTI_WAIT 300
270 #define LOCK_MULTI_NOWAIT 400
272 #define NOWAIT_WRITE 500
273 #define PARALLEL_TRN 1000
274 #define TRN_ISO_READ_COMMITED 0
275 #define TRN_ISO_REPEATABLE_READ 2000
276 #define TRN_ISO_SERIALIZABLE 3000
278 #define SINGLELOCK_READ_COMMITED LOCK_SINGLE_NOWAIT + PARALLEL_TRN
279 #define MULTILOCK_READ_COMMITED LOCK_MULTI_NOWAIT + PARALLEL_TRN
280 #define MULTILOCK_REPEATABLE_READ TRN_ISO_REPEATABLE_READ + LOCK_MULTI_NOWAIT
281 #define MULTILOCK_ISO_SERIALIZABLE TRN_ISO_SERIALIZABLE + LOCK_MULTI_NOWAIT
286 #define SINGLELOCK_NOGAP SINGLELOCK_READ_COMMITED
287 #define MULTILOCK_NOGAP MULTILOCK_READ_COMMITED
288 #define MULTILOCK_GAP MULTILOCK_REPEATABLE_READ + LOCK_MULTI_NOWAIT
290 #define CONSISTENT_READ 4000
291 #define MULTILOCK_GAP_SHARE TRN_ISO_REPEATABLE_READ
292 #define MULTILOCK_NOGAP_SHARE 0
294 #define ROW_LOCK_X LOCK_SINGLE_NOWAIT
295 #define ROW_LOCK_S 5000 + LOCK_SINGLE_NOWAIT
298 #define SRV_ISO_READ_UNCOMMITED 0
299 #define SRV_ISO_READ_COMMITED 1
300 #define SRV_ISO_REPEATABLE_READ 2
301 #define SRV_ISO_SERIALIZABLE 3
305 #define TD_OPEN_NORMAL 0
306 #define TD_OPEN_READONLY -2
307 #define TD_OPEN_EXCLUSIVE -4
308 #define TD_OPEN_READONLY_EXCLUSIVE (TD_OPEN_READONLY + TD_OPEN_EXCLUSIVE)
313 #define BT_AL_CENTER 2
314 #define BT_AL_RIGHT 1
319 #define STATUS_TABLE_YET_OPEN -3
320 #define STATUS_DURING_TRANSACTION -4
321 #define STATUS_NO_ACR_UPDATE_DELETE -5
322 #define STATUS_NO_ACR_INSERT -6
323 #define STATUS_NO_ACR_READ -7
324 #define STATUS_CANT_ALLOC_MEMORY -8
325 #define STATUS_USE_KEYFIELD -9
326 #define STATUS_TOO_MANY_TABLES -10
327 #define STATUS_INVARID_PRM_KEY_NUM -11
328 #define STATUS_INVARID_PNT_KEY_NUM -12
329 #define STATUS_INVARID_REP_KEY_NUM -13
330 #define STATUS_INVARID_FIELD_IDX -14
331 #define STATUS_ALREADY_DELETED -15
332 #define STATUS_LMITS_MAX_TABLES -16
333 #define STATUS_DB_YET_OPEN -17
334 #define STATUS_TABLENAME_NOTFOUND -18
335 #define STATUS_DIFFERENT_DBVERSION -19
336 #define STATUS_DUPLICATE_FIELDNAME -20
337 #define STATUS_INVALID_TABLE_IDX -21
338 #define STATUS_AUTH_DENIED -22
339 #define STATUS_TOO_MANY_FIELDS -23
340 #define STATUS_FILTERSTRING_ERROR -24
341 #define STATUS_INVALID_FIELDLENGTH -25
342 #define STATUS_INVALID_KEYTYPE -26
343 #define STATUS_LVAR_NOTE_NOT_LAST -27
344 #define STATUS_NODEF_FOR_CONVERT -28
345 #define STATUS_TRD_NEED_VARLENGTH -29
346 #define STATUS_INVALID_VARIABLETABLE -30
347 #define STATUS_AUTOINC_SPACE_ERROR -31
348 #define STATUS_TOO_LONG_OWNERNAME -32
349 #define STATUS_CANT_DEL_FOR_REL -33
350 #define STATUS_NO_AUTOINC_SPACE -34
351 #define STATUS_INVALID_RECLEN -35
352 #define STATUS_INVALID_FIELDVALUE -36
353 #define STATUS_INVALID_VALLEN -37
354 #define STATUS_FIELDTYPE_NOTSUPPORT -42
357 #define STATUS_SUCCESS 0
358 #define STATUS_PROGRAM_ERROR 1
359 #define STATUS_IO_ERROR 2
360 #define STATUS_FILE_NOT_OPENED 3
361 #define STATUS_NOT_FOUND_TI 4
362 #define STATUS_DUPPLICATE_KEYVALUE 5
363 #define STATUS_INVALID_KEYNUM 6
364 #define STATUS_NO_CURRENT 8
366 #define STATUS_TABLE_NOTOPEN 12
367 #define STATUS_REQUESTER_DEACTIVE 20
368 #define STATUS_KEYBUFFERTOOSMALL 21
369 #define STATUS_BUFFERTOOSMALL 22
370 #define STATUS_CANT_CREATE 25
371 #define STATUS_NOSUPPORT_OP 41
372 #define STATUS_INVALID_BOOKMARK 43
373 #define STATUS_ACCESS_DENIED 46
374 #define STATUS_INVALID_OWNERNAME 51
375 #define STATUS_TABLE_EXISTS_ERROR 59
376 #define STATUS_LIMMIT_OF_REJECT 60
377 #define STATUS_WARKSPACE_TOO_SMALL 61
378 #define STATUS_INVALID_EX_DESC 62
379 #define STATUS_INVALID_EX_INS 63
380 #define STATUS_REACHED_FILTER_COND 64
381 #define STATUS_INVALID_FIELD_OFFSET 65
382 #define STATUS_CHANGE_CONFLICT 80
383 #define STATUS_INVALID_LOCKTYPE 83
384 #define STATUS_LOCK_ERROR 84
385 #define STATUS_FILE_LOCKED 85
386 #define STATUS_INVALID_SUPPLYVALUES 86
387 #define STATUS_CANNOT_LOCK_TABLE 88
388 #define STATUS_INVALID_KEYNAME STATUS_INVALID_KEYNUM
389 #define STATUS_INVALID_DATASIZE STATUS_BUFFERTOOSMALL
390 #define STATUS_INVALID_FIELDNAME STATUS_INVALID_FIELD_OFFSET
391 #define ERROR_TD_INVALID_CLINETHOST 171
392 #define ERROR_NO_DATABASE 172
393 #define ERROR_NOSPECIFY_TABLE 176
394 #define ERROR_LOAD_CLIBRARY 200
395 #define ERROR_INDEX_RND_INIT 201
396 #define STATUS_INVALID_PREPAREID 202
397 #define STATUS_LMIT_OF_PREPAREED 203
398 #define STATUS_ALREADY_INSNAPSHOT 204
399 #define STATUS_ALREADY_INTRANSACTION 205
400 #define SERVER_CLIENT_NOT_COMPATIBLE 3003
401 #define NET_BAD_SRB_FORMAT 3021
402 #define ERROR_TD_HOSTNAME_NOT_FOUND 3103
403 #define ERROR_TD_CONNECTION_FAILURE 3106
404 #define ERROR_TD_NOT_CONNECTED 3110
405 #define ERROR_TD_NET_TIMEOUT 3800
406 #define ERROR_TD_NET_REMOTE_DISCONNECT 3801
407 #define ERROR_TD_NET_TOO_BIGDATA 3802
408 #define ERROR_TD_NET_OTHER 3810
409 #define ERROR_TD_C_CLIENT_UNKNOWN 3811
410 #define ERROR_TD_RECONNECTED 3900
412 inline bool canRecoverNetError(
short code)
414 return (code >= ERROR_TD_CONNECTION_FAILURE) &&
415 (code < ERROR_TD_RECONNECTED) &&
416 (code != ERROR_TD_NET_TOO_BIGDATA);
420 #define TRANSACTD_SCHEMANAME _T("transactd_schema")
421 #define TYPE_SCHEMA_BDF 0
422 #define TYPE_SCHEMA_DDF 1
424 #define FILTER_CURRENT_TYPE_NOTINC 0
425 #define FILTER_CURRENT_TYPE_INC 1
426 #define FILTER_TYPE_SEEKS_BOOKMARKS 1 //with FILTER_TYPE_SEEKS only
427 #define FILTER_CURRENT_TYPE_NOBOOKMARK 2
428 #define FILTER_TYPE_SUPPLYVALUE 4
429 #define FILTER_TYPE_FORWORD 4 //at preparing only
430 #define FILTER_TYPE_SEEKS 8
434 #define FILTER_COMBINE_NOPREPARE 0
435 #define FILTER_COMBINE_PREPARE 32
438 #define NIS_FILED_NAME "$nf"
441 #define OWNERNAME_SIZE 12
443 #define TD_BACKUP_START 0
444 #define TD_BACKUP_END 2
445 #define TD_BACKUP_MODE_OK STATUS_SUCCESS
446 #define TD_BACKUP_MODE_NOT_SUPPORT STATUS_PROGRAM_ERROR
447 #define TD_BACKUP_MODE_BUSY STATUS_CANNOT_LOCK_TABLE
448 #define TD_BACKUP_MODE_NOT_PERMIT 41
449 #define TD_BACKUP_MODE_SERVER_ERROR 91
455 char cherserServer[128];
461 ushort_td srvRelease;
464 #define MYSQL_SCRAMBLE_LENGTH 20
465 #define MYSQL_USERNAME_MAX 16
470 unsigned int options;
472 unsigned short transaction_isolation;
473 unsigned short lock_wait_timeout;
474 unsigned char scramble[MYSQL_SCRAMBLE_LENGTH+1];
477 #define HST_OPTION_NO_SCRAMBLE 1
481 #define TD_VER_SERVER 1
482 #define TD_VAR_LISTENADDRESS 2
483 #define TD_VAR_LISTENPORT 3
484 #define TD_VAR_HOSTCHECKNAME 4
485 #define TD_VAR_MAXTCPCONNECTIONS 5
486 #define TD_VAR_TABLENAMELOWER 6
487 #define TD_VAR_POOLTHREADS 7
488 #define TD_VAR_TCPSERVERTYPE 8
489 #define TD_VAR_LOCKWAITTIMEOUT 9
490 #define TD_VAR_ISOLATION 10
491 #define TD_VAR_AUTHTYPE 11
492 #define TD_VAR_PIPESHAREMEMSIZE 12
493 #define TD_VAR_MAXPIPECONNECTIONS 13
494 #define TD_VAR_USEPIPE 14
495 #define TD_VAR_HSLISTENPORT 15
496 #define TD_VAR_USEHS 16
497 #define TD_VAR_SIZE 17
504 #define C_INTERFACE_VER_MAJOR "2"//##1 Build marker! Don't remove
505 #define C_INTERFACE_VER_MINOR "4"//##2 Build marker! Don't remove
506 #define C_INTERFACE_VER_RELEASE "4"//##3 Build marker! Don't remove
512 #define C_INTERFACE_VERSTR \
513 "." C_INTERFACE_VER_MAJOR "." C_INTERFACE_VER_MINOR ".so" // use loadlibrary
514 #else // NOT __APPLE__
515 #define C_INTERFACE_VERSTR \
516 ".so." C_INTERFACE_VER_MAJOR "." C_INTERFACE_VER_MINOR // use loadlibrary
517 #endif // NOT __APPLE__
519 #define C_INTERFACE_VERSTR \
520 "_" C_INTERFACE_VER_MAJOR "_" C_INTERFACE_VER_MINOR ".dll" // use
524 #if (defined(__x86_64__) || (defined(LINUX) && !defined(__BORLANDC__)))
525 #define TDCLC_LIBNAME "tdclc_64" C_INTERFACE_VERSTR // use loadlibrary
527 #define TDCLC_LIBNAME "tdclc_32" C_INTERFACE_VERSTR // use loadlibrary
531 #define TD_CPP_LIB_PRE "tdclcpp"
533 #if ((defined(_MSC_VER) && defined(_DLL)) || \
534 (defined(__BORLANDC__) && defined(_RTLDLL)))
541 #if (defined(__x86_64__) || (defined(LINUX) && !defined(__BORLANDC__)))
543 #define TD_LIB_PART "64u" RTL_PART
544 #else // NOT _UNICODE
545 #define TD_LIB_PART "64m" RTL_PART
546 #endif // NOT _UNICODE
549 #define TD_LIB_PART "32u" RTL_PART
550 #else // NOT _UNICODE
551 #define TD_LIB_PART "32m" RTL_PART
552 #endif // NOT _UNICODE
568 #define CPP_INTERFACE_VER_MAJOR "2"//##4 Build marker! Don't remove
569 #define CPP_INTERFACE_VER_MINOR "4"//##5 Build marker! Don't remove
570 #define CPP_INTERFACE_VER_RELEASE "4"//##6 Build marker! Don't remove
573 #if (__BCPLUSPLUS__ || _MSC_VER)
575 #define CPP_INTERFACE_VERSTR \
576 "_" COMPILER_VERSTR "_" TD_LIB_PART "." CPP_INTERFACE_VER_MAJOR \
577 "." CPP_INTERFACE_VER_MINOR
579 #define CPP_INTERFACE_VERSTR \
580 "_" COMPILER_VERSTR "_" TD_LIB_PART "_" CPP_INTERFACE_VER_MAJOR \
581 "_" CPP_INTERFACE_VER_MINOR
585 #define TRANSACTD_VER_MAJOR 2//##7 Build marker! Don't remove
586 #define TRANSACTD_VER_MINOR 4//##8 Build marker! Don't remove
587 #define TRANSACTD_VER_RELEASE 4//##9 Build marker! Don't remove
589 #endif // BZS_DB_PROTOCOL_TDAP_TDAPCAPI_H
BOOKMARK()
Definition: tdapcapi.h:41
bool isEmpty()
Definition: tdapcapi.h:42
BOOKMARK構造体
Definition: tdapcapi.h:37
bool empty
Definition: tdapcapi.h:40
uchar_td val[MAX_BOOKMARK_SIZE]
Definition: tdapcapi.h:39
typedef short(__STDCALL *schemaMgrFn)(database *db)