btrieveCpp.h
Go to the documentation of this file.
1 //
3 // Copyright (C) 2016 - Actian Corp.
4 //
6 
7 // This file exists in both project "zen.core" and "zen.docs".
8 // Make sure that both files are kept in sync.
9 //
10 // When updating this file make the corresponding changes to "btrieveC.h".
11 
12 #ifndef _BTRIEVECPP_H
13 #define _BTRIEVECPP_H
14 
15 #include <cstddef>
16 #include <deque>
17 
18 #include "btrieveC.h"
19 
20 class BRestful;
27 class BtrieveClient;
28 class BtrieveCollection;
29 class BtrieveDocumentSet;
30 class BtrieveFile;
33 class BtrieveFilter;
35 class BtrieveKeySegment;
36 class BtrieveVersion;
37 
39 class LINKAGE Btrieve
40 {
41 public:
43  static const int MAXIMUM_RECORD_LENGTH = BTRIEVE_MAXIMUM_RECORD_LENGTH;
44 
46  static const int MAXIMUM_KEY_LENGTH = BTRIEVE_MAXIMUM_KEY_LENGTH;
47 
49  static const int MAXIMUM_BULK_RECORD_COUNT = BTRIEVE_MAXIMUM_BULK_RECORD_COUNT;
50 
53  enum ACSMode {
55  ACS_MODE_NONE = 0,
57  ACS_MODE_NAMED = 1,
59  ACS_MODE_NUMBERED = 2,
61  ACS_MODE_CASE_INSENSITIVE = 3,
63  ACS_MODE_DEFAULT = 4,
65  ACS_MODE_UNKNOWN = -7
66  };
67 
76  enum CreateMode {
78  CREATE_MODE_OVERWRITE = 0,
80  CREATE_MODE_NO_OVERWRITE = 1,
82  CREATE_MODE_UNKNOWN = -7
83  };
84 
88  enum Comparison {
90  COMPARISON_NONE = 0,
92  COMPARISON_EQUAL = 1,
94  COMPARISON_GREATER_THAN = 2,
96  COMPARISON_LESS_THAN = 3,
98  COMPARISON_NOT_EQUAL = 4,
100  COMPARISON_GREATER_THAN_OR_EQUAL = 5,
102  COMPARISON_LESS_THAN_OR_EQUAL = 6,
104  COMPARISON_LIKE = 7,
106  COMPARISON_NOT_LIKE = 8,
108  COMPARISON_JSON_QUERY_MATCH = 9,
110  COMPARISON_UNKNOWN = -7
111  };
112 
116  enum Connector {
118  CONNECTOR_LAST = 0,
120  CONNECTOR_AND = 1,
122  CONNECTOR_OR = 2,
124  CONNECTOR_UNKNOWN = -7
125  };
126 
127 
129  enum DiskDrive {
131  DISK_DRIVE_A = 0,
133  DISK_DRIVE_B = 1,
135  DISK_DRIVE_C = 2,
137  DISK_DRIVE_D = 3,
139  DISK_DRIVE_E = 4,
141  DISK_DRIVE_F = 5,
143  DISK_DRIVE_G = 6,
145  DISK_DRIVE_H = 7,
147  DISK_DRIVE_I = 8,
149  DISK_DRIVE_J = 9,
151  DISK_DRIVE_K = 10,
153  DISK_DRIVE_L = 11,
155  DISK_DRIVE_M = 12,
157  DISK_DRIVE_N = 13,
159  DISK_DRIVE_O = 14,
161  DISK_DRIVE_P = 15,
163  DISK_DRIVE_Q = 16,
165  DISK_DRIVE_R = 17,
167  DISK_DRIVE_S = 18,
169  DISK_DRIVE_T = 19,
171  DISK_DRIVE_U = 20,
173  DISK_DRIVE_V = 21,
175  DISK_DRIVE_W = 22,
177  DISK_DRIVE_X = 23,
179  DISK_DRIVE_Y = 24,
181  DISK_DRIVE_Z = 25,
183  DISK_DRIVE_DEFAULT = 26,
185  DISK_DRIVE_UNKNOWN = -7
186  };
187 
194  DUPLICATE_MODE_NOT_ALLOWED = 0,
196  DUPLICATE_MODE_ALLOWED_NONREPEATING = 1,
198  DUPLICATE_MODE_ALLOWED_REPEATING = 2,
200  DUPLICATE_MODE_UNKNOWN = -7
201  };
202 
212  enum DataType {
214  DATA_TYPE_CHAR = 0,
216  DATA_TYPE_ZSTRING = 1,
218  DATA_TYPE_INTEGER = 2,
220  DATA_TYPE_UNSIGNED_BINARY = 3,
222  DATA_TYPE_FLOAT = 4,
224  DATA_TYPE_AUTOINCREMENT = 5,
226  DATA_TYPE_DATE = 6,
228  DATA_TYPE_NUMERICSTS = 7,
230  DATA_TYPE_TIME = 8,
232  DATA_TYPE_NUMERICSA = 9,
234  DATA_TYPE_DECIMAL = 10,
236  DATA_TYPE_CURRENCY = 11,
238  DATA_TYPE_MONEY = 12,
240  DATA_TYPE_TIMESTAMP = 13,
242  DATA_TYPE_LOGICAL = 14,
244  DATA_TYPE_WSTRING = 15,
246  DATA_TYPE_NUMERIC = 16,
248  DATA_TYPE_WZSTRING = 17,
250  DATA_TYPE_BFLOAT = 18,
252  DATA_TYPE_GUID = 19,
254  DATA_TYPE_LSTRING = 20,
256  DATA_TYPE_NULL_INDICATOR_SEGMENT = 21,
258  DATA_TYPE_LEGACY_STRING = 22,
260  DATA_TYPE_LEGACY_BINARY = 23,
262  DATA_TYPE_AUTOTIMESTAMP = 24,
264  DATA_TYPE_CLOB = 25,
266  DATA_TYPE_TIMESTAMP2 = 26,
268  DATA_TYPE_BIT = 27,
270  DATA_TYPE_NUMERICSLB = 28,
272  DATA_TYPE_NUMERICSLS = 29,
274  DATA_TYPE_NUMERICSTB = 30,
276  DATA_TYPE_UNKNOWN = -7
277  };
278 
283  enum FileVersion {
285  FILE_VERSION_6_0 = 0,
287  FILE_VERSION_6_1 = 1,
289  FILE_VERSION_7_0 = 2,
291  FILE_VERSION_8_0 = 3,
293  FILE_VERSION_9_0 = 4,
295  FILE_VERSION_9_5 = 5,
297  FILE_VERSION_13_0 = 7,
299  FILE_VERSION_DEFAULT = 6,
301  FILE_VERSION_UNKNOWN = -7
302  };
303 
310  FREE_SPACE_THRESHOLD_10_PERCENT = 0,
312  FREE_SPACE_THRESHOLD_20_PERCENT = 1,
314  FREE_SPACE_THRESHOLD_30_PERCENT = 2,
316  FREE_SPACE_THRESHOLD_DEFAULT = 3,
318  FREE_SPACE_THRESHOLD_UNKNOWN = -7
319  };
320 
330  enum Index {
332  INDEX_1 = 0,
334  INDEX_2 = 1,
336  INDEX_3 = 2,
338  INDEX_4 = 3,
340  INDEX_5 = 4,
342  INDEX_6 = 5,
344  INDEX_7 = 6,
346  INDEX_8 = 7,
348  INDEX_9 = 8,
350  INDEX_10 = 9,
352  INDEX_11 = 10,
354  INDEX_12 = 11,
356  INDEX_13 = 12,
358  INDEX_14 = 13,
360  INDEX_15 = 14,
362  INDEX_16 = 15,
364  INDEX_17 = 16,
366  INDEX_18 = 17,
368  INDEX_19 = 18,
370  INDEX_20 = 19,
372  INDEX_21 = 20,
374  INDEX_22 = 21,
376  INDEX_23 = 22,
378  INDEX_24 = 23,
380  INDEX_25 = 24,
382  INDEX_26 = 25,
384  INDEX_27 = 26,
386  INDEX_28 = 27,
388  INDEX_29 = 28,
390  INDEX_30 = 29,
392  INDEX_31 = 30,
394  INDEX_32 = 31,
396  INDEX_33 = 32,
398  INDEX_34 = 33,
400  INDEX_35 = 34,
402  INDEX_36 = 35,
404  INDEX_37 = 36,
406  INDEX_38 = 37,
408  INDEX_39 = 38,
410  INDEX_40 = 39,
412  INDEX_41 = 40,
414  INDEX_42 = 41,
416  INDEX_43 = 42,
418  INDEX_44 = 43,
420  INDEX_45 = 44,
422  INDEX_46 = 45,
424  INDEX_47 = 46,
426  INDEX_48 = 47,
428  INDEX_49 = 48,
430  INDEX_50 = 49,
432  INDEX_51 = 50,
434  INDEX_52 = 51,
436  INDEX_53 = 52,
438  INDEX_54 = 53,
440  INDEX_55 = 54,
442  INDEX_56 = 55,
444  INDEX_57 = 56,
446  INDEX_58 = 57,
448  INDEX_59 = 58,
450  INDEX_60 = 59,
452  INDEX_61 = 60,
454  INDEX_62 = 61,
456  INDEX_63 = 62,
458  INDEX_64 = 63,
460  INDEX_65 = 64,
462  INDEX_66 = 65,
464  INDEX_67 = 66,
466  INDEX_68 = 67,
468  INDEX_69 = 68,
470  INDEX_70 = 69,
472  INDEX_71 = 70,
474  INDEX_72 = 71,
476  INDEX_73 = 72,
478  INDEX_74 = 73,
480  INDEX_75 = 74,
482  INDEX_76 = 75,
484  INDEX_77 = 76,
486  INDEX_78 = 77,
488  INDEX_79 = 78,
490  INDEX_80 = 79,
492  INDEX_81 = 80,
494  INDEX_82 = 81,
496  INDEX_83 = 82,
498  INDEX_84 = 83,
500  INDEX_85 = 84,
502  INDEX_86 = 85,
504  INDEX_87 = 86,
506  INDEX_88 = 87,
508  INDEX_89 = 88,
510  INDEX_90 = 89,
512  INDEX_91 = 90,
514  INDEX_92 = 91,
516  INDEX_93 = 92,
518  INDEX_94 = 93,
520  INDEX_95 = 94,
522  INDEX_96 = 95,
524  INDEX_97 = 96,
526  INDEX_98 = 97,
528  INDEX_99 = 98,
530  INDEX_100 = 99,
532  INDEX_101 = 100,
534  INDEX_102 = 101,
536  INDEX_103 = 102,
538  INDEX_104 = 103,
540  INDEX_105 = 104,
542  INDEX_106 = 105,
544  INDEX_107 = 106,
546  INDEX_108 = 107,
548  INDEX_109 = 108,
550  INDEX_110 = 109,
552  INDEX_111 = 110,
554  INDEX_112 = 111,
556  INDEX_113 = 112,
558  INDEX_114 = 113,
560  INDEX_115 = 114,
562  INDEX_116 = 115,
564  INDEX_117 = 116,
566  INDEX_118 = 117,
568  INDEX_119 = 118,
570  INDEX_SYSTEM_VERSION_2 = 124,
572  INDEX_SYSTEM = 125,
574  INDEX_NONE = -1,
576  INDEX_UNKNOWN = -7
577  };
578 
582  LOCATION_MODE_NO_PREFERENCE = 0,
584  LOCATION_MODE_FORCE_LOCAL = 1,
586  LOCATION_MODE_FORCE_REMOTE = 2,
588  LOCATION_MODE_UNKNOWN = -7
589  };
590 
595  enum LockMode {
597  LOCK_MODE_NONE = 0,
599  LOCK_MODE_SINGLE_WAIT = 1,
601  LOCK_MODE_SINGLE_NO_WAIT = 2,
603  LOCK_MODE_MULTIPLE_WAIT = 3,
605  LOCK_MODE_MULTIPLE_NO_WAIT = 4,
607  LOCK_MODE_UNKNOWN = -7
608  };
609 
612  enum NullKeyMode {
614  NULL_KEY_MODE_ALL_SEGMENTS = 0,
616  NULL_KEY_MODE_ANY_SEGMENTS = 1,
618  NULL_KEY_MODE_NONE = 2,
620  NULL_KEY_MODE_UNKNOWN = -7
621  };
622 
631  enum OpenMode {
633  OPEN_MODE_NORMAL = 0,
635  OPEN_MODE_ACCELERATED = 1,
637  OPEN_MODE_READ_ONLY = 2,
639  OPEN_MODE_EXCLUSIVE = 3,
641  OPEN_MODE_WRITABLE = 4,
643  OPEN_MODE_UNKNOWN = -7
644  };
645 
648  enum OwnerMode {
650  OWNER_MODE_NONE = 0,
652  OWNER_MODE_NO_ENCRYPTION_NO_READ_ALLOWED = 1,
654  OWNER_MODE_NO_ENCRYPTION_READ_ALLOWED = 2,
656  OWNER_MODE_ENCRYPTION_NO_READ_ALLOWED = 3,
658  OWNER_MODE_ENCRYPTION_READ_ALLOWED = 4,
660  OWNER_MODE_UNKNOWN = -7
661  };
662 
665  enum EncryptType {
667  ENCRYPT_TYPE_NONE = 0,
669  ENCRYPT_TYPE_TRADITIONAL = 1,
671  ENCRYPT_TYPE_128_BIT = 2,
673  ENCRYPT_TYPE_AES_192 = 3,
675  ENCRYPT_TYPE_AES_256 = 4,
677  ENCRYPT_TYPE_UNKNOWN = -7
678  };
679 
684  PAGE_LOCK_TYPE_NONE = 0,
686  PAGE_LOCK_TYPE_DATA_PAGE = 1,
688  PAGE_LOCK_TYPE_INDEX_PAGE = 2,
690  PAGE_LOCK_TYPE_VARIABLE_PAGE = 3,
692  PAGE_LOCK_TYPE_UNKNOWN = -7
693  };
694 
699  enum PageSize {
701  PAGE_SIZE_512 = 0,
703  PAGE_SIZE_1024 = 1,
705  PAGE_SIZE_1536 = 2,
707  PAGE_SIZE_2048 = 3,
709  PAGE_SIZE_3072 = 4,
711  PAGE_SIZE_3584 = 5,
713  PAGE_SIZE_4096 = 6,
715  PAGE_SIZE_8192 = 7,
717  PAGE_SIZE_16384 = 8,
719  PAGE_SIZE_DEFAULT = 9,
721  PAGE_SIZE_UNKNOWN = -7
722  };
723 
730  RECORD_COMPRESSION_MODE_NONE = 0,
732  RECORD_COMPRESSION_MODE_BLANK_TRUNCATION = 1,
734  RECORD_COMPRESSION_MODE_RUN_LENGTH_ENCODING = 2,
736  RECORD_COMPRESSION_MODE_UNKNOWN = -7
737  };
738 
748  enum StatusCode {
750  STATUS_CODE_NO_ERROR = 0,
752  STATUS_CODE_INVALID_FUNCTION = 1,
754  STATUS_CODE_IO_ERROR = 2,
756  STATUS_CODE_FILE_NOT_OPEN = 3,
758  STATUS_CODE_KEY_VALUE_NOT_FOUND = 4,
760  STATUS_CODE_DUPLICATE_KEY_VALUE = 5,
762  STATUS_CODE_INVALID_INDEX_NUMBER = 6,
764  STATUS_CODE_DIFFERENT_INDEX_NUMBER = 7,
766  STATUS_CODE_POSITION_NOT_SET = 8,
768  STATUS_CODE_END_OF_FILE = 9,
770  STATUS_CODE_MODIFIABLE_KEYVALUE_ERROR = 10,
772  STATUS_CODE_FILENAME_BAD = 11,
774  STATUS_CODE_FILE_NOT_FOUND = 12,
776  STATUS_CODE_EXTENDED_FILE_ERROR = 13,
778  STATUS_CODE_PREIMAGE_OPEN_ERROR = 14,
780  STATUS_CODE_PREIMAGE_IO_ERROR = 15,
782  STATUS_CODE_EXPANSION_ERROR = 16,
784  STATUS_CODE_CLOSE_ERROR = 17,
786  STATUS_CODE_DISKFULL = 18,
788  STATUS_CODE_UNRECOVERABLE_ERROR = 19,
790  STATUS_CODE_RECORD_MANAGER_INACTIVE = 20,
792  STATUS_CODE_KEYBUFFER_TOO_SHORT = 21,
794  STATUS_CODE_DATALENGTH_ERROR = 22,
796  STATUS_CODE_POSITIONBLOCK_LENGTH = 23,
798  STATUS_CODE_PAGE_SIZE_ERROR = 24,
800  STATUS_CODE_CREATE_IO_ERROR = 25,
802  STATUS_CODE_NUMBER_OF_INDEXES = 26,
804  STATUS_CODE_INVALID_KEY_POSITION = 27,
806  STATUS_CODE_INVALID_RECORD_LENGTH = 28,
808  STATUS_CODE_INVALID_KEYLENGTH = 29,
810  STATUS_CODE_NOT_A_BTRIEVE_FILE = 30,
812  STATUS_CODE_FILE_ALREADY_EXTENDED = 31,
814  STATUS_CODE_EXTEND_IO_ERROR = 32,
816  STATUS_CODE_BTR_CANNOT_UNLOAD = 33,
818  STATUS_CODE_INVALID_EXTENSION_NAME = 34,
820  STATUS_CODE_DIRECTORY_ERROR = 35,
822  STATUS_CODE_TRANSACTION_ERROR = 36,
824  STATUS_CODE_TRANSACTION_IS_ACTIVE = 37,
826  STATUS_CODE_TRANSACTION_FILE_IO_ERROR = 38,
828  STATUS_CODE_END_TRANSACTION_ERROR = 39,
830  STATUS_CODE_TRANSACTION_MAX_FILES = 40,
832  STATUS_CODE_OPERATION_NOT_ALLOWED = 41,
834  STATUS_CODE_INCOMPLETE_ACCEL_ACCESS = 42,
836  STATUS_CODE_INVALID_RECORD_ADDRESS = 43,
838  STATUS_CODE_NULL_KEYPATH = 44,
840  STATUS_CODE_INCONSISTENT_KEY_FLAGS = 45,
842  STATUS_CODE_ACCESS_TO_FILE_DENIED = 46,
844  STATUS_CODE_MAXIMUM_OPEN_FILES = 47,
846  STATUS_CODE_INVALID_ALT_SEQUENCE_DEF = 48,
848  STATUS_CODE_KEY_TYPE_ERROR = 49,
850  STATUS_CODE_OWNER_ALREADY_SET = 50,
852  STATUS_CODE_INVALID_OWNER = 51,
854  STATUS_CODE_ERROR_WRITING_CACHE = 52,
856  STATUS_CODE_INVALID_INTERFACE = 53,
858  STATUS_CODE_VARIABLE_PAGE_ERROR = 54,
860  STATUS_CODE_AUTOINCREMENT_ERROR = 55,
862  STATUS_CODE_INCOMPLETE_INDEX = 56,
864  STATUS_CODE_EXPANED_MEM_ERROR = 57,
866  STATUS_CODE_COMPRESS_BUFFER_TOO_SHORT = 58,
868  STATUS_CODE_FILE_ALREADY_EXISTS = 59,
870  STATUS_CODE_REJECT_COUNT_REACHED = 60,
872  STATUS_CODE_SMALL_EX_GET_BUFFER_ERROR = 61,
874  STATUS_CODE_INVALID_GET_EXPRESSION = 62,
876  STATUS_CODE_INVALID_EXT_INSERT_BUFF = 63,
878  STATUS_CODE_OPTIMIZE_LIMIT_REACHED = 64,
880  STATUS_CODE_INVALID_EXTRACTOR = 65,
882  STATUS_CODE_RI_TOO_MANY_DATABASES = 66,
884  STATUS_CODE_RIDDF_CANNOT_OPEN = 67,
886  STATUS_CODE_RI_CASCADE_TOO_DEEP = 68,
888  STATUS_CODE_RI_CASCADE_ERROR = 69,
890  STATUS_CODE_RI_VIOLATION = 71,
892  STATUS_CODE_RI_REFERENCED_FILE_CANNOT_OPEN = 72,
894  STATUS_CODE_RI_OUT_OF_SYNC = 73,
896  STATUS_CODE_END_CHANGED_TO_ABORT = 74,
898  STATUS_CODE_RI_CONFLICT = 76,
900  STATUS_CODE_CANT_LOOP_IN_SERVER = 77,
902  STATUS_CODE_DEAD_LOCK = 78,
904  STATUS_CODE_PROGRAMMING_ERROR = 79,
906  STATUS_CODE_CONFLICT = 80,
908  STATUS_CODE_LOCKERROR = 81,
910  STATUS_CODE_LOST_POSITION = 82,
912  STATUS_CODE_READ_OUTSIDE_TRANSACTION = 83,
914  STATUS_CODE_RECORD_INUSE = 84,
916  STATUS_CODE_FILE_INUSE = 85,
918  STATUS_CODE_FILE_TABLE_FULL = 86,
920  STATUS_CODE_NOHANDLES_AVAILABLE = 87,
922  STATUS_CODE_INCOMPATIBLE_MODE_ERROR = 88,
924  STATUS_CODE_DEVICE_TABLE_FULL = 90,
926  STATUS_CODE_SERVER_ERROR = 91,
928  STATUS_CODE_TRANSACTION_TABLE_FULL = 92,
930  STATUS_CODE_INCOMPATIBLE_LOCK_TYPE = 93,
932  STATUS_CODE_PERMISSION_ERROR = 94,
934  STATUS_CODE_SESSION_NO_LONGER_VALID = 95,
936  STATUS_CODE_COMMUNICATIONS_ERROR = 96,
938  STATUS_CODE_DATA_MESSAGE_TOO_SMALL = 97,
940  STATUS_CODE_INTERNAL_TRANSACTION_ERROR = 98,
942  STATUS_CODE_REQUESTER_CANT_ACCESS_RUNTIME = 99,
944  STATUS_CODE_NO_CACHE_BUFFERS_AVAIL = 100,
946  STATUS_CODE_NO_OS_MEMORY_AVAIL = 101,
948  STATUS_CODE_NO_STACK_AVAIL = 102,
950  STATUS_CODE_CHUNK_OFFSET_TOO_LONG = 103,
952  STATUS_CODE_LOCALE_ERROR = 104,
954  STATUS_CODE_CANNOT_CREATE_WITH_VAT = 105,
956  STATUS_CODE_CHUNK_CANNOT_GET_NEXT = 106,
958  STATUS_CODE_CHUNK_INCOMPATIBLE_FILE = 107,
960  STATUS_CODE_TRANSACTION_TOO_COMPLEX = 109,
962  STATUS_CODE_ARCH_BLOG_OPEN_ERROR = 110,
964  STATUS_CODE_ARCH_FILE_NOT_LOGGED = 111,
966  STATUS_CODE_ARCH_FILE_IN_USE = 112,
968  STATUS_CODE_ARCH_LOGFILE_NOT_FOUND = 113,
970  STATUS_CODE_ARCH_LOGFILE_INVALID = 114,
972  STATUS_CODE_ARCH_DUMPFILE_ACCESS_ERROR = 115,
974  STATUS_CODE_LOCATOR_FILE_INDICATOR = 116,
976  STATUS_CODE_NO_SYSTEM_LOCKS_AVAILABLE = 130,
978  STATUS_CODE_FILE_FULL = 132,
980  STATUS_CODE_MORE_THAN_5_CONCURRENT_USERS = 133,
982  STATUS_CODE_ISR_NOT_FOUND = 134,
984  STATUS_CODE_ISR_INVALID = 135,
986  STATUS_CODE_ACS_NOT_FOUND = 136,
988  STATUS_CODE_CANNOT_CONVERT_RP = 137,
990  STATUS_CODE_INVALID_NULL_INDICATOR = 138,
992  STATUS_CODE_INVALID_KEY_OPTION = 139,
994  STATUS_CODE_INCOMPATIBLE_CLOSE = 140,
996  STATUS_CODE_INVALID_USERNAME = 141,
998  STATUS_CODE_INVALID_DATABASE = 142,
1000  STATUS_CODE_NO_SSQL_RIGHTS = 143,
1002  STATUS_CODE_ALREADY_LOGGED_IN = 144,
1004  STATUS_CODE_NO_DATABASE_SERVICES = 145,
1006  STATUS_CODE_DUPLICATE_SYSTEM_KEY = 146,
1008  STATUS_CODE_LOG_SEGMENT_MISSING = 147,
1010  STATUS_CODE_ROLL_FORWARD_ERROR = 148,
1012  STATUS_CODE_SYSTEM_KEY_INTERNAL = 149,
1014  STATUS_CODE_DBS_INTERNAL_ERROR = 150,
1017  STATUS_CODE_CHUNK_OFFSET_TOO_SMALL = 151,
1019  STATUS_CODE_INVALID_PARAMETER_TO_MKDE = 160,
1021  STATUS_CODE_USER_COUNT_LIMIT_EXCEEDED = 161,
1023  STATUS_CODE_CLIENT_TABLE_FULL = 162,
1025  STATUS_CODE_LAST_SEGMENT_ERROR = 163,
1027  STATUS_CODE_LOGIN_FAILED_BAD_USERNAME = 170,
1029  STATUS_CODE_LOGIN_FAILED_BAD_PASSWORD = 171,
1031  STATUS_CODE_LOGIN_FAILED_BAD_DATABASE = 172,
1033  STATUS_CODE_LOGIN_ALREADY_LOGGED_IN = 173,
1035  STATUS_CODE_LOGIN_LOGOUT_FAILED = 174,
1037  STATUS_CODE_LOGIN_WRONG_URI_FORMAT = 175,
1039  STATUS_CODE_LOGIN_FILE_AND_TABLE_NOT_FOUND = 176,
1041  STATUS_CODE_LOGIN_TABLE_NOT_IN_DATABASE = 177,
1043  STATUS_CODE_LOGIN_DIRECTORY_NOT_IN_DATABASE = 178,
1045  STATUS_CODE_LOCK_PARM_OUTOFRANGE = 1001,
1047  STATUS_CODE_MEM_ALLOCATION_ERR = 1002,
1049  STATUS_CODE_MEM_PARM_TOO_SMALL = 1003,
1051  STATUS_CODE_PAGE_SIZE_PARM_OUTOFRANGE = 1004,
1053  STATUS_CODE_INVALID_PREIMAGE_PARM = 1005,
1055  STATUS_CODE_PREIMAGE_BUF_PARM_OUTOFRANGE = 1006,
1057  STATUS_CODE_FILES_PARM_OUTOFRANGE = 1007,
1059  STATUS_CODE_INVALID_INIT_PARM = 1008,
1061  STATUS_CODE_INVALID_TRANS_PARM = 1009,
1063  STATUS_CODE_ERROR_ACC_TRANS_CONTROL_FILE = 1010,
1065  STATUS_CODE_COMPRESSION_BUF_PARM_OUTOFRANGE = 1011,
1067  STATUS_CODE_INV_N_OPTION = 1012,
1069  STATUS_CODE_TASK_LIST_FULL = 1013,
1071  STATUS_CODE_STOP_WARNING = 1014,
1073  STATUS_CODE_POINTER_PARM_INVALID = 1015,
1075  STATUS_CODE_ALREADY_INITIALIZED = 1016,
1077  STATUS_CODE_REQ_CANT_FIND_RES_DLL = 1017,
1079  STATUS_CODE_ALREADY_INSIDE_BTR_FUNCTION = 1018,
1081  STATUS_CODE_CALLBACK_ABORT = 1019,
1083  STATUS_CODE_INTF_COMM_ERROR = 1020,
1085  STATUS_CODE_FAILED_TO_INITIALIZE = 1021,
1087  STATUS_CODE_MKDE_SHUTTING_DOWN = 1022,
1089  STATUS_CODE_INTERNAL_ERROR = 2000,
1091  STATUS_CODE_INSUFFICIENT_MEM_ALLOC = 2001,
1093  STATUS_CODE_INVALID_OPTION = 2002,
1095  STATUS_CODE_NO_LOCAL_ACCESS_ALLOWED = 2003,
1097  STATUS_CODE_SPX_NOT_INSTALLED = 2004,
1099  STATUS_CODE_INCORRECT_SPX_VERSION = 2005,
1101  STATUS_CODE_NO_AVAIL_SPX_CONNECTION = 2006,
1103  STATUS_CODE_INVALID_PTR_PARM = 2007,
1105  STATUS_CODE_CANT_CONNECT_TO_615 = 2008,
1107  STATUS_CODE_CANT_LOAD_MKDE_ROUTER = 2009,
1109  STATUS_CODE_UT_THUNK_NOT_LOADED = 2010,
1111  STATUS_CODE_NO_RESOURCE_DLL = 2011,
1113  STATUS_CODE_OS_ERROR = 2012,
1115  STATUS_CODE_MK_ROUTER_MEM_ERROR = 3000,
1117  STATUS_CODE_MK_NO_LOCAL_ACCESS_ALLOWED = 3001,
1119  STATUS_CODE_MK_NO_RESOURCE_DLL = 3002,
1121  STATUS_CODE_MK_INCOMPAT_COMPONENT = 3003,
1123  STATUS_CODE_MK_TIMEOUT_ERROR = 3004,
1125  STATUS_CODE_MK_OS_ERROR = 3005,
1127  STATUS_CODE_MK_INVALID_SESSION = 3006,
1129  STATUS_CODE_MK_SERVER_NOT_FOUND = 3007,
1131  STATUS_CODE_MK_INVALID_CONFIG = 3008,
1133  STATUS_CODE_MK_NETAPI_NOT_LOADED = 3009,
1135  STATUS_CODE_MK_NWAPI_NOT_LOADED = 3010,
1137  STATUS_CODE_MK_THUNK_NOT_LOADED = 3011,
1139  STATUS_CODE_MK_LOCAL_NOT_LOADED = 3012,
1141  STATUS_CODE_MK_PNSL_NOT_LOADED = 3013,
1143  STATUS_CODE_MK_CANT_FIND_ENGINE = 3014,
1145  STATUS_CODE_MK_INIT_ERROR = 3015,
1147  STATUS_CODE_MK_INTERNAL_ERROR = 3016,
1149  STATUS_CODE_MK_LOCAL_MKDE_DATABUF_TOO_SMALL = 3017,
1151  STATUS_CODE_MK_CLOSED_ERROR = 3018,
1153  STATUS_CODE_MK_SEMAPHORE_ERROR = 3019,
1155  STATUS_CODE_MK_LOADING_ERROR = 3020,
1157  STATUS_CODE_MK_BAD_SRB_FORMAT = 3021,
1159  STATUS_CODE_MK_DATABUF_LEN_TOO_LARGE = 3022,
1161  STATUS_CODE_MK_TASK_TABLE_FULL = 3023,
1163  STATUS_CODE_MK_INVALID_OP_ON_REMOTE = 3024,
1165  STATUS_CODE_MK_PIDS_NOT_LOADED = 3025,
1167  STATUS_CODE_MK_BAD_PIDS = 3026,
1169  STATUS_CODE_MK_IDS_CONNECT_FAILURE = 3027,
1171  STATUS_CODE_MK_IDS_LOGIN_FAILURE = 3028,
1173  STATUS_CODE_NL_FAILURE = 3101,
1175  STATUS_CODE_NL_NOT_INITIALIZED = 3102,
1177  STATUS_CODE_NL_NAME_NOT_FOUND = 3103,
1179  STATUS_CODE_NL_PERMISSION_ERROR = 3104,
1181  STATUS_CODE_NL_NO_AVAILABLE_TRANSPORT = 3105,
1183  STATUS_CODE_NL_CONNECTION_FAILURE = 3106,
1185  STATUS_CODE_NL_OUT_OF_MEMORY = 3107,
1187  STATUS_CODE_NL_INVALID_SESSION = 3108,
1189  STATUS_CODE_NL_MORE_DATA = 3109,
1191  STATUS_CODE_NL_NOT_CONNECTED = 3110,
1193  STATUS_CODE_NL_SEND_FAILURE = 3111,
1195  STATUS_CODE_NL_RECEIVE_FAILURE = 3112,
1197  STATUS_CODE_NL_INVALID_SERVER_TYPE = 3113,
1199  STATUS_CODE_NL_SRT_FULL = 3114,
1201  STATUS_CODE_NL_TRANSPORT_FAILURE = 3115,
1203  STATUS_CODE_NL_RCV_DATA_OVERFLOW = 3116,
1205  STATUS_CODE_NL_CST_FULL = 3117,
1207  STATUS_CODE_NL_INVALID_ADDRESS_FAMILY = 3118,
1209  STATUS_CODE_NL_NO_AUTH_CONTEXT_AVAILABLE = 3119,
1211  STATUS_CODE_NL_INVALID_AUTH_TYPE = 3120,
1213  STATUS_CODE_NL_INVALID_AUTH_OBJECT = 3121,
1215  STATUS_CODE_NL_AUTH_LEN_TOO_SMALL = 3122,
1217  STATUS_CODE_NL_INVALID_SESSION_LEVEL_PARM = 3123,
1219  STATUS_CODE_NL_TASK_TABLE_FULL = 3124,
1221  STATUS_CODE_NL_NDS_NAME_RESOLUTION_ERROR = 3125,
1223  STATUS_CODE_NL_FILE_NAME_RESOLUTION_ERROR = 3126,
1225  STATUS_CODE_NL_IDS_SEND_FAILURE = 3127,
1227  STATUS_CODE_NL_IDS_RCV_FAILURE = 3128,
1229  STATUS_CODE_UNKNOWN = -7,
1230  };
1231 
1238  SYSTEM_DATA_MODE_YES = 0,
1240  SYSTEM_DATA_MODE_NO = 1,
1242  SYSTEM_DATA_MODE_DEFAULT = 2,
1244  SYSTEM_DATA_MODE_VERSION_2 = 3,
1246  SYSTEM_DATA_MODE_UNKNOWN = -7
1247  };
1248 
1252  TRANSACTION_MODE_EXCLUSIVE = 0,
1254  TRANSACTION_MODE_CONCURRENT_WRITE_WAIT = 1,
1256  TRANSACTION_MODE_CONCURRENT_NO_WRITE_WAIT = 2,
1258  TRANSACTION_MODE_UNKNOWN = -7
1259  };
1260 
1264  enum UnlockMode {
1266  UNLOCK_MODE_SINGLE = 0,
1268  UNLOCK_MODE_MULTIPLE = 1,
1270  UNLOCK_MODE_UNKNOWN = -7
1271  };
1272 
1279  VARIABLE_LENGTH_RECORDS_MODE_NO = 0,
1281  VARIABLE_LENGTH_RECORDS_MODE_YES = 1,
1283  VARIABLE_LENGTH_RECORDS_MODE_YES_VARIABLE_ALLOCATION_TAILS = 2,
1285  VARIABLE_LENGTH_RECORDS_MODE_UNKNOWN = -7
1286  };
1287 
1292  VERSION_TYPE_NONE = 0,
1294  VERSION_TYPE_BTRIEVE_ENGINE = 1,
1296  VERSION_TYPE_WORKGROUP_ENGINE = 2,
1298  VERSION_TYPE_DOS_WORKSTATION = 3,
1300  VERSION_TYPE_CLIENT_REQUESTOR = 4,
1302  VERSION_TYPE_WINDOWS_SERVER_ENGINE = 5,
1304  VERSION_TYPE_UNIX = 6,
1306  VERSION_TYPE_CLIENT_ENGINE = 7,
1308  VERSION_TYPE_UNKNOWN = -7
1309  };
1310 
1315  SYSTEM_FIELD_CREATE_TIME = 0,
1317  SYSTEM_FIELD_UPDATE_TIME = 1,
1319  SYSTEM_FIELD_UNKNOWN = -7
1320  };
1321 
1327  static const char *ACSModeToString(ACSMode ACSMode);
1333  static const char *DuplicateModeToString(DuplicateMode duplicateMode);
1339  static const char *DataTypeToString(DataType dataType);
1345  static const char *FileVersionToString(FileVersion fileVersion);
1351  static const char *FreeSpaceThresholdToString(FreeSpaceThreshold freeSpaceThreshold);
1357  static const char *IndexToString(Index index);
1363  static const char *NullKeyModeToString(NullKeyMode nullKeyMode);
1369  static const char *PageSizeToString(PageSize pageSize);
1375  static const char *RecordCompressionModeToString(RecordCompressionMode recordCompressionMode);
1386  static const char *StatusCodeToString(StatusCode statusCode);
1392  static const char *SystemDataModeToString(SystemDataMode systemDataMode);
1398  static const char *VersionTypeToString(VersionType versionType);
1404  static const char *PageLockTypeToString(PageLockType pageLockType);
1410  static const char *LockModeToString(LockMode lockMode);
1416  static const char *OwnerModeToString(OwnerMode ownerMode);
1420  static const char *EncryptTypeToString(EncryptType encryptType);
1426  static const char *VariableLengthRecordsModeToString(VariableLengthRecordsMode variableLengthRecordsMode);
1430  static const char *SystemFieldToString(SystemField systemField);
1434  static long long UnixEpochMicrosecondsToTimestamp(long long microseconds);
1438  static long long TimestampToUnixEpochMicroseconds(long long timestamp);
1439 
1440 private:
1441  Btrieve();
1442  ~Btrieve();
1443 };
1444 
1446 class LINKAGE BtrieveClient
1447 {
1448 public:
1451  BtrieveClient();
1461  BtrieveClient(int serviceAgentIdentifier, int clientIdentifier);
1462  ~BtrieveClient();
1463 
1472  Btrieve::StatusCode GetVersion(BtrieveVersion *btrieveVersion, BtrieveFile *btrieveFile = NULL);
1489  Btrieve::StatusCode FileOpen(BtrieveFile *btrieveFile, const char *fileName, const char *ownerName, Btrieve::OpenMode openMode, Btrieve::LocationMode locationMode = Btrieve::LOCATION_MODE_NO_PREFERENCE);
1499  Btrieve::StatusCode FileOpen(BtrieveFile *btrieveFile, const wchar_t *fileName, const char *ownerName, Btrieve::OpenMode openMode, Btrieve::LocationMode locationMode = Btrieve::LOCATION_MODE_NO_PREFERENCE);
1500 
1501 // Avoid Windows renaming of GetCurrentDirectory.
1502 #ifdef GetCurrentDirectory
1503  #undef GetCurrentDirectory
1504 #endif
1505 
1512  const char *GetCurrentDirectory(Btrieve::DiskDrive diskDrive);
1513 #ifndef SWIG
1514  Btrieve::StatusCode GetCurrentDirectory(Btrieve::DiskDrive diskDrive, char *currentDirectory, int currentDirectorySize);
1523 #endif
1524  Btrieve::StatusCode GetCurrentDirectory(Btrieve::DiskDrive diskDrive, wchar_t *currentDirectory, int currentDirectorySize);
1537  Btrieve::StatusCode ContinuousOperationBegin(const char *pathNames);
1543  Btrieve::StatusCode ContinuousOperationBegin(const wchar_t *pathNames);
1549  Btrieve::StatusCode ContinuousOperationEnd(const char *pathNames);
1555  Btrieve::StatusCode ContinuousOperationEnd(const wchar_t *pathNames);
1568  Btrieve::StatusCode FileClose(BtrieveFile *btrieveFile);
1584  Btrieve::StatusCode FileCreate(BtrieveFileAttributes *btrieveFileAttributes, const char *fileName, Btrieve::CreateMode createMode, Btrieve::LocationMode locationMode = Btrieve::LOCATION_MODE_NO_PREFERENCE);
1596  Btrieve::StatusCode FileCreate(BtrieveFileAttributes *btrieveFileAttributes, BtrieveIndexAttributes *btrieveIndexAttributes, const char *fileName, Btrieve::CreateMode createMode, Btrieve::LocationMode locationMode = Btrieve::LOCATION_MODE_NO_PREFERENCE);
1612  Btrieve::StatusCode FileCreate(BtrieveFileAttributes *btrieveFileAttributes, const wchar_t *fileName, Btrieve::CreateMode createMode, Btrieve::LocationMode locationMode = Btrieve::LOCATION_MODE_NO_PREFERENCE);
1624  Btrieve::StatusCode FileCreate(BtrieveFileAttributes *btrieveFileAttributes, BtrieveIndexAttributes *btrieveIndexAttributes, const wchar_t *fileName, Btrieve::CreateMode createMode, Btrieve::LocationMode locationMode = Btrieve::LOCATION_MODE_NO_PREFERENCE);
1637  Btrieve::StatusCode FileDelete(const char *fileName);
1650  Btrieve::StatusCode FileDelete(const wchar_t *fileName);
1657  Btrieve::StatusCode FileRename(const char *existingFileName, const char *newFileName);
1664  Btrieve::StatusCode FileRename(const wchar_t *existingFileName, const wchar_t *newFileName);
1670  Btrieve::StatusCode GetLastStatusCode();
1678  Btrieve::StatusCode Login(const char *databaseURI);
1684  Btrieve::StatusCode Login(const wchar_t *databaseURI);
1692  Btrieve::StatusCode Logout(const char *databaseURI);
1698  Btrieve::StatusCode Logout(const wchar_t *databaseURI);
1703  Btrieve::StatusCode Reset();
1704 
1705 // Avoid Windows renaming of SetCurrentDirectory.
1706 #ifdef SetCurrentDirectory
1707  #undef SetCurrentDirectory
1708 #endif
1709 
1717  Btrieve::StatusCode SetCurrentDirectory(const char *currentDirectory);
1725  Btrieve::StatusCode SetCurrentDirectory(const wchar_t *currentDirectory);
1730  Btrieve::StatusCode Stop();
1735  Btrieve::StatusCode TransactionAbort();
1742  Btrieve::StatusCode TransactionBegin(Btrieve::TransactionMode transactionMode, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1747  Btrieve::StatusCode TransactionEnd();
1752  int GetServiceAgentIdentifier();
1757  int GetClientIdentifier();
1763  Btrieve::StatusCode CollectionCreate(const char *collectionName);
1769  Btrieve::StatusCode CollectionDelete(const char *collectionName);
1776  Btrieve::StatusCode CollectionRename(const char *existingCollectionName, const char *newCollectionName);
1784  Btrieve::StatusCode CollectionOpen(BtrieveCollection *btrieveCollection, const char *collectionName, const char *password = NULL);
1790  Btrieve::StatusCode CollectionClose(BtrieveCollection *btrieveCollection);
1791 
1792 private:
1793  btrieve_client_t btrieveClient = NULL;
1794 };
1795 
1808 class LINKAGE BtrieveFile
1809 {
1810  friend class BtrieveClient;
1811 
1812 protected:
1813  btrieve_file_t GetBtrieveFile();
1814  btrieve_file_t *GetBtrieveFilePtr();
1815  BtrieveFile(btrieve_file_t btrieveFileIn);
1816 
1817 public:
1826  BtrieveFile();
1828  ~BtrieveFile();
1829 
1840  Btrieve::StatusCode RecordDelete();
1858  int RecordRetrieveByFraction(Btrieve::Index index, int numerator, int denominator, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1876  int RecordRetrieveByFraction(Btrieve::Index index, int numerator, int denominator, char *key, int keySize, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1893  int RecordRetrieveByPercentage(Btrieve::Index index, int percentage, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1910  int RecordRetrieveByPercentage(Btrieve::Index index, int percentage, char *key, int keySize, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1928  int RecordRetrieveByCursorPosition(Btrieve::Index index, long long cursorPosition, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1945  int RecordRetrieveByCursorPosition(Btrieve::Index index, long long cursorPosition, char *key, int keySize, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1970  int RecordRetrieve(Btrieve::Comparison comparison, Btrieve::Index index, char *key, int keyLength, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
1986  Btrieve::StatusCode KeyRetrieve(Btrieve::Comparison comparison, Btrieve::Index index, char *key, int keyLength);
2001  Btrieve::StatusCode BulkRetrieveNext(BtrieveBulkRetrieveAttributes *bulkRetrieveAttributes, BtrieveBulkRetrieveResult *bulkRetrieveResult, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2014  Btrieve::StatusCode BulkRetrievePrevious(BtrieveBulkRetrieveAttributes *bulkRetrieveAttributes, BtrieveBulkRetrieveResult *bulkRetrieveResult, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2026  Btrieve::StatusCode BulkDeleteNext(BtrieveBulkDeleteAttributes *bulkDeleteAttributes, BtrieveBulkDeleteResult *bulkDeleteResult);
2038  Btrieve::StatusCode BulkDeletePrevious(BtrieveBulkDeleteAttributes *bulkDeleteAttributes, BtrieveBulkDeleteResult *bulkDeleteResult);
2050  Btrieve::StatusCode GetInformation(BtrieveFileInformation *btrieveFileInformation);
2066  int RecordRetrieveFirst(Btrieve::Index index, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2082  int RecordRetrieveFirst(Btrieve::Index index, char *key, int keySize, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2094  Btrieve::StatusCode KeyRetrieveFirst(Btrieve::Index index, char *key, int keySize);
2108  int GetNumerator(long long cursorPosition, int denominator);
2123  int GetNumerator(Btrieve::Index index, const char *key, int keyLength, int denominator);
2139  int RecordRetrieveLast(Btrieve::Index index, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2155  int RecordRetrieveLast(Btrieve::Index index, char *key, int keySize, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2167  Btrieve::StatusCode KeyRetrieveLast(Btrieve::Index index, char *key, int keySize);
2195  Btrieve::StatusCode KeyRetrieveNext(char *key, int keySize);
2210  int RecordRetrieveNext(char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2225  int RecordRetrieveNext(char *key, int keySize, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2238  int GetPercentage(long long cursorPosition);
2252  int GetPercentage(Btrieve::Index index, const char *key, int keyLength);
2264  long long GetCursorPosition();
2275  long long GetRecordCreateTime();
2286  long long GetRecordUpdateTime();
2297  Btrieve::StatusCode KeyRetrievePrevious(char *key, int keySize);
2310  int RecordRetrievePrevious(char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2325  int RecordRetrievePrevious(char *key, int keySize, char *record, int recordSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2342  int RecordRetrieveChunk(int offset, int length, char *chunk, int chunkSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2358  int RecordRetrieveChunk(int length, char *chunk, int chunkSize, Btrieve::LockMode lockMode = Btrieve::LOCK_MODE_NONE);
2375  Btrieve::StatusCode IndexCreate(BtrieveIndexAttributes *btrieveIndexAttributes);
2385  Btrieve::StatusCode IndexDrop(Btrieve::Index index);
2404  Btrieve::StatusCode RecordCreate(char *record, int recordLength);
2417  Btrieve::StatusCode BulkCreate(BtrieveBulkCreatePayload *btrieveBulkCreatePayload, BtrieveBulkCreateResult *btrieveBulkCreateResult);
2432  Btrieve::StatusCode SetOwner(Btrieve::OwnerMode ownerMode, const char *ownerName = NULL, const char *ownerNameAgain = NULL, bool useLongOwnerName = true);
2441  Btrieve::StatusCode RecordTruncate(int offset);
2449  Btrieve::StatusCode RecordTruncate();
2461  Btrieve::StatusCode RecordUnlock(Btrieve::UnlockMode unlockMode);
2472  Btrieve::StatusCode UnlockCursorPosition(long long cursorPosition);
2485  Btrieve::StatusCode RecordUpdate(const char *record, int recordLength);
2500  Btrieve::StatusCode RecordAppendChunk(const char *chunk, int chunkLength);
2512  Btrieve::StatusCode RecordDeleteChunk(int offset, int chunkLength);
2523  Btrieve::StatusCode RecordDeleteChunk(int chunkLength);
2536  Btrieve::StatusCode RecordInsertChunk(int offset, const char *chunk, int chunkLength);
2548  Btrieve::StatusCode RecordInsertChunk(const char *chunk, int chunkLength);
2561  Btrieve::StatusCode RecordUpdateChunk(int offset, const char *chunk, int chunkLength);
2573  Btrieve::StatusCode RecordUpdateChunk(const char *chunk, int chunkLength);
2574 
2575 private:
2576  btrieve_file_t btrieveFile = NULL;
2577 };
2578 
2581 {
2582  friend class BtrieveClient;
2583 
2584 protected:
2585  btrieve_file_attributes_t GetBtrieveFileAttributes();
2586 
2587 public:
2597 
2607  Btrieve::StatusCode SetBalancedIndexes(bool enableBalancedIndexes);
2618  Btrieve::StatusCode SetRecordCompressionMode(Btrieve::RecordCompressionMode recordCompressionMode);
2630  Btrieve::StatusCode SetReservedDuplicatePointerCount(int reservedDuplicatePointerCount);
2641  Btrieve::StatusCode SetFileVersion(Btrieve::FileVersion fileVersion);
2652  Btrieve::StatusCode SetFreeSpaceThreshold(Btrieve::FreeSpaceThreshold freeSpaceThreshold);
2667  Btrieve::StatusCode SetPageSize(Btrieve::PageSize pageSize, bool enablePageCompression = false);
2682  Btrieve::StatusCode SetFixedRecordLength(int fixedRecordLength);
2692  Btrieve::StatusCode SetPreallocatedPageCount(int preallocatedPageCount);
2702  Btrieve::StatusCode SetSystemDataMode(Btrieve::SystemDataMode systemDataMode);
2712  Btrieve::StatusCode SetVariableLengthRecordsMode(Btrieve::VariableLengthRecordsMode variableLengthRecordsMode);
2723  Btrieve::StatusCode SetKeyOnly(bool enableKeyOnly);
2724 
2725 private:
2726  btrieve_file_attributes_t btrieveFileAttributes = NULL;
2727 };
2728 
2731 {
2732  friend class BtrieveFile;
2733 
2734 protected:
2735  btrieve_file_information_t GetBtrieveFileInformation();
2736 
2737 public:
2743 
2759  Btrieve::FileVersion GetFileVersion();
2767  Btrieve::FreeSpaceThreshold GetFreeSpaceThreshold();
2775  Btrieve::PageSize GetPageSize();
2783  Btrieve::SystemDataMode GetSystemDataMode();
2792  Btrieve::StatusCode GetKeySegment(BtrieveKeySegment *btrieveKeySegment, int keySegmentNumber);
2800  int GetBalancedIndexes();
2808  Btrieve::RecordCompressionMode GetRecordCompressionMode();
2816  int GetKeyOnly();
2824  int GetPageCompression();
2832  int GetPagePreallocation();
2840  Btrieve::VariableLengthRecordsMode GetVariableLengthRecordsMode();
2847  int GetUnusedDuplicatePointerCount();
2854  int GetIndexCount();
2861  int GetFixedRecordLength();
2869  long long GetRecordCount();
2877  int GetSegmented();
2884  int GetUnusedPageCount();
2892  Btrieve::Index GetLogIndex();
2900  int GetLoggable();
2910  int GetSystemData();
2917  int GetSystemIndexSize();
2928  int GetSystemIndex();
2935  int GetSystemIndexVersion();
2943  long long GetDuplicateRecordConflictCursorPosition();
2951  Btrieve::Index GetDuplicateRecordConflictIndex();
2958  int GetIdentifier();
2965  int GetHandleCount();
2972  int GetOpenTimestamp();
2979  int GetUsageCount();
2987  int GetExplicitLocks();
2995  int GetClientTransactions();
3003  int GetReadOnly();
3011  int GetContinuousOperation();
3019  int GetReferentialIntegrityConstraints();
3027  Btrieve::OwnerMode GetOwnerMode();
3033  Btrieve::EncryptType GetEncryptionType();
3041  int GetWrongOwner();
3048  int GetGatewayMajorVersion();
3055  int GetGatewayMinorVersion();
3062  int GetGatewayPatchLevel();
3069  int GetGatewayPlatform();
3076  const char *GetGatewayName();
3077 #ifndef SWIG
3078  Btrieve::StatusCode GetGatewayName(char *name, int nameSize);
3086 #endif
3087  int GetLockOwnerImplicitLock();
3102  int GetLockOwnerFileLock();
3110  int GetLockOwnerRecordLock();
3118  int GetLockOwnerSameProcess();
3126  int GetLockOwnerWriteNoWait();
3134  int GetLockOwnerWriteHold();
3141  int GetLockOwnerTimeInTransaction();
3148  int GetLockOwnerTransactionLevel();
3155  const char *GetLockOwnerName();
3156 #ifndef SWIG
3157  Btrieve::StatusCode GetLockOwnerName(char *name, int nameSize);
3165 #endif
3166  int GetLockOwnerServiceAgentIdentifier();
3179  int GetLockOwnerClientIdentifier();
3187  Btrieve::LockMode GetLockOwnerExplicitLockMode();
3195  Btrieve::PageLockType GetLockOwnerPageLockType();
3203  Btrieve::Index GetLockOwnerIndex();
3210  const char *GetReferentialIntegrityFileName();
3211 #ifndef SWIG
3212  Btrieve::StatusCode GetReferentialIntegrityFileName(char *name, int nameSize);
3220 #endif
3221  int GetReferentialIntegrityOperationCode();
3235  long long GetReferentialIntegrityCursorPosition();
3242  int GetSegmentCount();
3250  const char *GetSegmentFileName(int segmentFileNumber);
3251 #ifndef SWIG
3252  Btrieve::StatusCode GetSegmentFileName(int segmentFileNumber, char *name, int nameSize);
3261 #endif
3262 
3263  // TODO: Coalesce some of the following.
3271  int GetSecurityHandleTrusted();
3279  int GetSecurityHandleImplicit();
3287  int GetSecurityHandleExplicit();
3295  int GetSecurityHandleAuthenticationByDatabase();
3303  int GetSecurityHandleAuthorizationByDatabase();
3311  int GetSecurityHandleWindowsNamedPipe();
3319  int GetSecurityHandleWorkgroup();
3327  int GetSecurityHandleBtpasswd();
3335  int GetSecurityHandlePAM();
3343  int GetSecurityHandleRTSSComplete();
3351  int GetSecurityHandleRTSSPreauthorized();
3359  int GetSecurityHandleRTSSDisabled();
3367  int GetSecurityCurrentDatabaseTrusted();
3375  int GetSecurityCurrentDatabaseImplicit();
3383  int GetSecurityCurrentDatabaseExplicit();
3391  int GetSecurityCurrentDatabaseAuthenticationByDatabase();
3399  int GetSecurityCurrentDatabaseAuthorizationByDatabase();
3407  int GetSecurityCurrentDatabaseWindowsNamedPipe();
3415  int GetSecurityCurrentDatabaseWorkgroup();
3423  int GetSecurityCurrentDatabaseBtpasswd();
3431  int GetSecurityCurrentDatabasePAM();
3439  int GetSecurityCurrentDatabaseRTSSComplete();
3447  int GetSecurityCurrentDatabaseRTSSPreauthorized();
3455  int GetSecurityCurrentDatabaseRTSSDisabled();
3463  int GetSecurityPermissionNoRights();
3471  int GetSecurityPermissionOpen();
3479  int GetSecurityPermissionRead();
3487  int GetSecurityPermissionCreateFile();
3495  int GetSecurityPermissionUpdate();
3503  int GetSecurityPermissionCreateRecord();
3511  int GetSecurityPermissionDelete();
3519  int GetSecurityPermissionExecute();
3527  int GetSecurityPermissionAlter();
3535  int GetSecurityPermissionRefer();
3543  int GetSecurityPermissionCreateView();
3551  int GetSecurityPermissionCreateStoredProcedure();
3559  const char *GetSecurityHandleDatabaseName();
3560 #ifndef SWIG
3561  Btrieve::StatusCode GetSecurityHandleDatabaseName(char *name, int nameSize);
3569 #endif
3570  const char *GetSecurityHandleTableName();
3578 #ifndef SWIG
3579  Btrieve::StatusCode GetSecurityHandleTableName(char *name, int nameSize);
3587 #endif
3588  const char *GetSecurityHandleUserName();
3596 #ifndef SWIG
3597  Btrieve::StatusCode GetSecurityHandleUserName(char *name, int nameSize);
3605 #endif
3606  const char *GetSecurityCurrentDatabaseName();
3614 #ifndef SWIG
3615  Btrieve::StatusCode GetSecurityCurrentDatabaseName(char *name, int nameSize);
3623 #endif
3624  const char *GetSecurityCurrentUserName();
3632 #ifndef SWIG
3633  Btrieve::StatusCode GetSecurityCurrentUserName(char *name, int nameSize);
3641 #endif
3642 
3643 private:
3644  btrieve_file_information_t btrieveFileInformation = NULL;
3645 };
3646 
3648 class LINKAGE BtrieveFilter
3649 {
3652 
3653 protected:
3654  btrieve_filter_t GetBtrieveFilter();
3655 
3656 public:
3659  BtrieveFilter();
3660  ~BtrieveFilter();
3661 
3671  Btrieve::StatusCode SetComparison(Btrieve::Comparison comparison);
3682  Btrieve::StatusCode SetComparisonConstant(const char *constant, int constantLength);
3692  Btrieve::StatusCode SetComparisonField(int offset);
3705  Btrieve::StatusCode SetField(int offset, int length, Btrieve::DataType dataType);
3713  Btrieve::StatusCode SetSystemField(Btrieve::SystemField systemField);
3721  Btrieve::StatusCode SetLikeCodePageName(const char *name);
3729  Btrieve::StatusCode SetConnector(Btrieve::Connector connector);
3740  Btrieve::StatusCode SetACSMode(Btrieve::ACSMode ACSMode);
3748  Btrieve::StatusCode SetACSUserDefined(const char *name);
3758  Btrieve::StatusCode SetACSName(const char *name);
3759 
3760 private:
3761  btrieve_filter_t btrieveFilter = NULL;
3762 };
3763 
3766 {
3767  friend class BtrieveFile;
3768 
3769 protected:
3770  btrieve_bulk_retrieve_attributes_t GetBtrieveBulkRetrieveAttributes();
3771 
3772 public:
3777 
3790  Btrieve::StatusCode AddField(int offset, int length);
3800  Btrieve::StatusCode AddFilter(BtrieveFilter *btrieveFilter);
3810  Btrieve::StatusCode SetMaximumRecordCount(int maximumRecordCount);
3820  Btrieve::StatusCode SetMaximumRejectCount(int maximumRejectCount);
3830  Btrieve::StatusCode SetSkipCurrentRecord(bool skipCurrentRecord);
3831 
3832 private:
3833  btrieve_bulk_retrieve_attributes_t bulkRetrieveAttributes = NULL;
3834 };
3835 
3838 {
3839  friend class BtrieveFile;
3840 
3841 protected:
3842  btrieve_bulk_delete_attributes_t GetBtrieveBulkDeleteAttributes();
3843 
3844 public:
3847 
3855  Btrieve::StatusCode AddFilter(BtrieveFilter *btrieveFilter);
3863  Btrieve::StatusCode SetMaximumRecordCount(int maximumRecordCount);
3871  Btrieve::StatusCode SetMaximumRejectCount(int maximumRejectCount);
3879  Btrieve::StatusCode SetSkipCurrentRecord(bool skipCurrentRecord);
3880 
3881 private:
3882  btrieve_bulk_delete_attributes_t bulkDeleteAttributes = NULL;
3883 };
3884 
3887 {
3888  friend class BtrieveFile;
3889 
3890 protected:
3891  btrieve_bulk_retrieve_result_t GetBtrieveBulkRetrieveResult();
3892 
3893 public:
3898 
3917  int GetRecord(int recordNumber, char *record, int recordSize);
3924  int GetRecordCount();
3932  int GetRecordLength(int recordNumber);
3941  long long GetRecordCursorPosition(int recordNumber);
3942 
3943 private:
3944  btrieve_bulk_retrieve_result_t bulkRetrieveResult = NULL;
3945 };
3946 
3949 {
3950  friend class BtrieveFile;
3951 
3952 protected:
3953  btrieve_bulk_delete_result_t GetBtrieveBulkDeleteResult();
3954 
3955 public:
3958 
3969  int GetRecordCount();
3975  long long GetRecordCursorPosition(int recordNumber);
3976 
3977 private:
3978  btrieve_bulk_delete_result_t bulkDeleteResult = NULL;
3979 };
3980 
3983 {
3984  friend class BtrieveClient;
3985  friend class BtrieveFile;
3986 
3987 protected:
3988  btrieve_index_attributes_t GetBtrieveIndexAttributes();
3989 
3990 public:
4000 
4015  Btrieve::StatusCode AddKeySegment(BtrieveKeySegment *btrieveKeySegment);
4025  Btrieve::StatusCode SetIndex(Btrieve::Index index);
4035  Btrieve::StatusCode SetDuplicateMode(Btrieve::DuplicateMode duplicateMode);
4045  Btrieve::StatusCode SetModifiable(bool enableModifiable);
4053  Btrieve::StatusCode SetACSMode(Btrieve::ACSMode ACSMode);
4064  Btrieve::StatusCode SetACSName(const char *ACSName);
4072  Btrieve::StatusCode SetACSNumber(int ACSNumber);
4082  Btrieve::StatusCode SetACSUserDefined(const char *ACSName, const char *ACSMap, int ACSMapLength);
4083 
4084 private:
4085  btrieve_index_attributes_t btrieveIndexAttributes = NULL;
4086 };
4087 
4090 {
4091  friend class BtrieveFile;
4092 
4093 protected:
4094  btrieve_bulk_create_payload_t GetBtrieveBulkCreatePayload();
4095 
4096 public:
4101 
4112  Btrieve::StatusCode AddRecord(const char *record, int recordLength);
4113 
4114 private:
4115  btrieve_bulk_create_payload_t btrieveBulkCreatePayload = NULL;
4116 };
4117 
4120 {
4121  friend class BtrieveFile;
4122 
4123 protected:
4124  btrieve_bulk_create_result_t GetBtrieveBulkCreateResult();
4125 
4126 public:
4131 
4146  int GetRecordCount();
4155  long long GetRecordCursorPosition(int recordNumber);
4156 
4157 private:
4158  btrieve_bulk_create_result_t btrieveBulkCreateResult = NULL;
4159 };
4160 
4162 class LINKAGE BtrieveKeySegment
4163 {
4166 
4167 protected:
4168  btrieve_key_segment_t GetBtrieveKeySegment();
4169  BtrieveKeySegment(btrieve_key_segment_t btrieveKeySegmentIn);
4170 
4171 public:
4180  ~BtrieveKeySegment();
4181 
4197  Btrieve::ACSMode GetACSMode();
4205  int GetModifiable();
4213  int GetKeyContinues();
4221  Btrieve::DataType GetDataType();
4228  int GetACSNumber();
4236  int GetDescendingSortOrder();
4244  Btrieve::DuplicateMode GetDuplicateMode();
4252  Btrieve::Index GetIndex();
4259  int GetLength();
4267  Btrieve::NullKeyMode GetNullKeyMode();
4274  int GetNullValue();
4281  int GetOffset();
4289  long long GetUniqueValueCount();
4299  Btrieve::StatusCode SetDescendingSortOrder(bool setDescendingSortOrder);
4317  Btrieve::StatusCode SetField(int offset, int length, Btrieve::DataType dataType);
4327  Btrieve::StatusCode SetNullKeyMode(Btrieve::NullKeyMode nullKeyMode);
4337  Btrieve::StatusCode SetNullValue(int nullValue);
4338 
4339 private:
4340  btrieve_key_segment_t btrieveKeySegment = NULL;
4341 };
4342 
4344 class LINKAGE BtrieveVersion
4345 {
4346  friend class BtrieveClient;
4347 
4348 protected:
4349  btrieve_version_t GetBtrieveVersion();
4350 
4351 public:
4355  BtrieveVersion();
4356  ~BtrieveVersion();
4357 
4375  Btrieve::VersionType GetClientVersionType();
4385  Btrieve::VersionType GetRemoteVersionType();
4395  Btrieve::VersionType GetLocalVersionType();
4404  int GetClientRevisionNumber();
4413  int GetClientVersionNumber();
4422  int GetRemoteRevisionNumber();
4431  int GetRemoteVersionNumber();
4440  int GetLocalRevisionNumber();
4449  int GetLocalVersionNumber();
4450 
4451 private:
4452  btrieve_version_t btrieveVersion = NULL;
4453 };
4454 
4482 class LINKAGE BtrieveCollection
4483 {
4484  friend class BtrieveClient;
4485 
4486 protected:
4487  void SetBtrieveClient(BtrieveClient *btrieveClient);
4488  BtrieveFile *GetBtrieveFile();
4489 
4490 public:
4494  ~BtrieveCollection();
4495 
4501  int DocumentCreate(const char *json);
4509  int DocumentCreate(const char *json, const char *blob, int blobLength);
4519  Btrieve::StatusCode DocumentRetrieveBlob(int id, char *blob, int blobSize, int documentBlobOffset = 0, int documentBlobLength = 0);
4525  const char *DocumentRetrieveJson(int id);
4535  const char *DocumentRetrieveJson(int id, char *blob, int blobSize, int documentBlobOffset = 0, int documentBlobLength = 0);
4536 #ifndef SWIG
4537  Btrieve::StatusCode DocumentRetrieve(int id, char *json = NULL, int jsonSize = 0, char *blob = NULL, int blobSize = 0, int documentBlobOffset = 0, int documentBlobLength = 0);
4552 #endif
4553  Btrieve::StatusCode DocumentUpdate(int id, const char *json);
4568  Btrieve::StatusCode DocumentUpdate(int id, const char *json, const char *blob, int blobLength);
4574  Btrieve::StatusCode DocumentDelete(int id);
4651  Btrieve::StatusCode Query(BtrieveDocumentSet *btrieveDocumentSet, const char *query = NULL);
4660  Btrieve::StatusCode Encrypt(const char *password, const char *passwordAgain);
4665  Btrieve::StatusCode Decrypt();
4677  Btrieve::StatusCode SetLastStatusCode(Btrieve::StatusCode statusCode);
4679 
4680 private:
4681  BtrieveClient *btrieveClient = NULL;
4682  BtrieveFile *btrieveFile = NULL;
4684 };
4685 
4691 class LINKAGE BtrieveDocumentSet
4692 {
4693  friend class BtrieveCollection;
4694 
4695 protected:
4696  std::deque<int> *GetStdDeque();
4697 
4698 public:
4701  ~BtrieveDocumentSet();
4702 
4707  int Size();
4712  int PopFirst();
4717  int PopLast();
4724 
4725 private:
4726  std::deque<int> *stdDeque = NULL;
4728 };
4729 
4757 class LINKAGE BRestful
4758 {
4759 public:
4793  static const char *POST(const char *collectionName, const char *json = NULL);
4829  static const char *POST(const char *collectionName, const char *json, const char *blob, int blobLength);
4830 
4831 // Avoid Windows defining of DELETE.
4832 #ifdef DELETE
4833  #undef DELETE
4834 #endif
4835 
4865  static const char *DELETE(const char *collectionName, int id = -1);
4866 
4888  static const char *GET(const char *collectionName, int id);
4914  static const char *GET(const char *collectionName, int id, char *blob, int blobSize, int documentBlobOffset = 0, int documentBlobLength = 0);
4915 
4937  static const char *GET(const char *collectionName, const char *query = NULL);
4938 
4961  static const char *PUT(const char *collectionName, int id, const char *json);
4986  static const char *PUT(const char *collectionName, int id, const char *json, const char *blob, int blobLength);
4987 
4988 private:
4989  BRestful();
4990  ~BRestful();
4991 };
4992 
4993 #endif
FileVersion
The Btrieve file versions.
Definition: btrieveCpp.h:283
SystemField
The Btrieve system fields.
Definition: btrieveCpp.h:1313
The Btrieve bulk retrieve result class.
Definition: btrieveCpp.h:3886
The Btrieve file attributes class.
Definition: btrieveCpp.h:2580
EncryptType
The Btrieve file encryption types.
Definition: btrieveCpp.h:665
struct btrieve_client * btrieve_client_t
A Btrieve client.
Definition: btrieveC.h:1294
VariableLengthRecordsMode
The Btrieve variable length records modes.
Definition: btrieveCpp.h:1277
struct btrieve_file_attributes * btrieve_file_attributes_t
A Btrieve file attributes.
Definition: btrieveC.h:1307
Btrieve::StatusCode GetLastStatusCode()
Get the last status code.
Connector
The Btrieve connectors.
Definition: btrieveCpp.h:116
The Btrieve file information class.
Definition: btrieveCpp.h:2730
VersionType
The Btrieve version types.
Definition: btrieveCpp.h:1290
NullKeyMode
The Btrieve null key modes.
Definition: btrieveCpp.h:612
#define BTRIEVE_MAXIMUM_RECORD_LENGTH
The Btrieve maximum record length.
Definition: btrieveC.h:28
Btrieve::StatusCode GetLastStatusCode()
Get the last status code.
struct btrieve_bulk_create_result * btrieve_bulk_create_result_t
A Btrieve bulk create result.
Definition: btrieveC.h:1271
The Btrieve bulk create result class.
Definition: btrieveCpp.h:4119
ACSMode
The Btrieve alternate collation sequence modes.
Definition: btrieveCpp.h:53
#define BTRIEVE_MAXIMUM_KEY_LENGTH
The Btrieve maximum key segment length.
Definition: btrieveC.h:31
Index
The Btrieve indexes.
Definition: btrieveCpp.h:330
PageLockType
The Btrieve page lock type.
Definition: btrieveCpp.h:682
RecordCompressionMode
The Btrieve record compression modes.
Definition: btrieveCpp.h:728
StatusCode
The Btrieve status codes.
Definition: btrieveCpp.h:748
The Btrieve class.
Definition: btrieveCpp.h:39
Comparison
The Btrieve comparisons.
Definition: btrieveCpp.h:88
struct btrieve_key_segment * btrieve_key_segment_t
A Btrieve key segment.
Definition: btrieveC.h:1329
The Btrieve bulk delete result class.
Definition: btrieveCpp.h:3948
OpenMode
The Btrieve open modes.
Definition: btrieveCpp.h:631
struct btrieve_bulk_create_payload * btrieve_bulk_create_payload_t
A Btrieve bulk create payload.
Definition: btrieveC.h:1267
PageSize
The Btrieve page sizes.
Definition: btrieveCpp.h:699
None.
Definition: btrieveCpp.h:597
OwnerMode
The Btrieve file owner modes.
Definition: btrieveCpp.h:648
The Btrieve bulk retrieve attributes class.
Definition: btrieveCpp.h:3765
Btrieve::StatusCode GetLastStatusCode()
Get the last status code.
UnlockMode
The Btrieve unlock modes.
Definition: btrieveCpp.h:1264
DuplicateMode
The Btrieve duplicate modes.
Definition: btrieveCpp.h:192
The Btrieve document set class.
Definition: btrieveCpp.h:4691
No preference.
Definition: btrieveCpp.h:582
struct btrieve_filter * btrieve_filter_t
A Btrieve filter.
Definition: btrieveC.h:1315
#define BTRIEVE_MAXIMUM_BULK_RECORD_COUNT
The Btrieve maximum bulk record count.
Definition: btrieveC.h:34
The Btrieve bulk delete attributes class.
Definition: btrieveCpp.h:3837
The Btrieve file class.
Definition: btrieveCpp.h:1808
The Btrieve version class.
Definition: btrieveCpp.h:4344
The Btrieve bulk create payload class.
Definition: btrieveCpp.h:4089
Btrieve::StatusCode GetLastStatusCode()
Get the last status code.
struct btrieve_bulk_retrieve_result * btrieve_bulk_retrieve_result_t
A Btrieve bulk retrieve result.
Definition: btrieveC.h:1283
struct btrieve_bulk_retrieve_attributes * btrieve_bulk_retrieve_attributes_t
A Btrieve bulk retrieve attributes.
Definition: btrieveC.h:1275
The Btrieve index attributes class.
Definition: btrieveCpp.h:3982
TransactionMode
The Btrieve transaction modes.
Definition: btrieveCpp.h:1250
FreeSpaceThreshold
The Btrieve free space thresholds.
Definition: btrieveCpp.h:308
CreateMode
The Btrieve create modes.
Definition: btrieveCpp.h:76
struct btrieve_file * btrieve_file_t
A Btrieve file.
Definition: btrieveC.h:1300
struct btrieve_index_attributes * btrieve_index_attributes_t
A Btrieve index attributes.
Definition: btrieveC.h:1322
The Btrieve key segment class.
Definition: btrieveCpp.h:4162
LocationMode
The Btrieve location modes.
Definition: btrieveCpp.h:580
struct btrieve_bulk_delete_attributes * btrieve_bulk_delete_attributes_t
A Btrieve bulk delete attributes.
Definition: btrieveC.h:1279
The Btrieve collection class.
Definition: btrieveCpp.h:4482
The Btrieve client class.
Definition: btrieveCpp.h:1446
DiskDrive
The Btrieve disk drives.
Definition: btrieveCpp.h:129
LockMode
The Btrieve lock modes.
Definition: btrieveCpp.h:595
The BRestful class.
Definition: btrieveCpp.h:4757
struct btrieve_file_information * btrieve_file_information_t
A Btrieve file information.
Definition: btrieveC.h:1311
The Btrieve filter class.
Definition: btrieveCpp.h:3648
SystemDataMode
The Btrieve system data modes.
Definition: btrieveCpp.h:1236
struct btrieve_bulk_delete_result * btrieve_bulk_delete_result_t
A Btrieve bulk delete result.
Definition: btrieveC.h:1287
struct btrieve_version * btrieve_version_t
A Btrieve version.
Definition: btrieveC.h:1333
DataType
The Btrieve data types.
Definition: btrieveCpp.h:212
0 - No error.
Definition: btrieveCpp.h:750