home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / MAGAZINE / DDJ9309.ZIP / NETSQL.ZIP / BTRIEVE.H < prev    next >
Text File  |  1992-08-04  |  5KB  |  207 lines

  1. /*
  2.  
  3.       btrieve.h
  4.       Used with bfile class, a Btrieve class for Borland C++
  5.       09/06/91
  6.  
  7.       Douglas J. Reilly
  8.       Access Microsystems Inc.
  9.       404 Midstreams Road
  10.       Brick, New Jersey  08724
  11.       (908) 892-2683
  12.       CompuServe 74040,607
  13.  
  14.       Comments?  Questions?  Suggestions?
  15.       Have a paying C/C++ programming job you need done?
  16.       Give me a call.
  17.       Released into the public domain.  Do with it as you see fit, but
  18.       if you do anything really neat with it, let me know...
  19.  
  20.  
  21. */
  22. #ifndef BTRIEVE_READ
  23. #define BTRIEVE_READ
  24.  
  25. // field types
  26. #define BFTYP_STRING     0
  27. #define BFTYP_INT        1
  28. #define BFTYP_FLOAT      2
  29. #define BFTYP_DATE       3
  30. #define BFTYP_TIME       4
  31. #define BFTYP_DECIMAL    5
  32. #define BFTYP_MONEY      6
  33. #define BFTYP_LOGICAL    7
  34. #define BFTYP_NUMERIC    8
  35. #define BFTYP_BFLOAT     9
  36. #define BFTYP_LSTRING   10
  37. #define BFTYP_ZSTRING   11
  38. #define BFTYP_UNSIGNED  14
  39. #define BFTYP_AUTOINC   15
  40. #define BFTYP_TRSIGN    0x11
  41. #define BFTYP_PREAL     0x20
  42. // operation codes...
  43. #define B_ABORT        21
  44. #define B_BEGIN        19
  45. #define B_CLEAR_OWNR   30
  46. #define B_CLOSE         1
  47. #define B_CREATE       14
  48. #define B_CREATE_SUP   31
  49. #define B_DELETE        4
  50. #define B_DROP_SUP     32
  51. #define B_END          20
  52. #define B_EXTEND       16
  53. #define B_GET_DIRECT   23
  54. #define B_GET_DIR      18
  55. #define B_GET_EQ        5
  56. #define B_GET_GT        8
  57. #define B_GET_GTE       9
  58. #define B_GET_HI       13
  59. #define B_GET_LT       10
  60. #define B_GET_LTE      11
  61. #define B_GET_LO       12
  62. #define B_GET_NEXT      6
  63. #define B_GET_POS      22
  64. #define B_GET_PREV      7
  65. #define B_INSERT        2
  66. #define B_OPEN          0
  67. #define B_RESET        28
  68. #define B_SET_DIR      17
  69. #define B_SET_OWNR     29
  70. #define B_STAT         15
  71. #define B_STEP_DIRECT  24
  72. #define B_STEP_FIRST   33
  73. #define B_STEP_LAST    34
  74. #define B_STEP_NEXT    24
  75. #define B_STEP_PREV    35
  76. #define B_STOP         25
  77. #define B_UNLOCK       27
  78. #define B_UPDATE        3
  79. #define B_VERSION      26
  80. #define B_LOCK_SRNW   200   /* single rec loc, no wait */
  81. #define B_LOCK_MRNW   400   /* multi record lock, no wait */
  82.  
  83. // a NON-error code.
  84. #define BERR_NONE           0
  85.  
  86. // error codes, not all, but all I have ever seen.
  87. #define BERR_INVALID_OP     1
  88. #define BERR_IO_ERROR       2
  89. #define BERR_NO_OPEN        3
  90. #define BERR_REC_NOT_FOUND  4
  91. #define BERR_DUP_ERROR      5
  92. #define BERR_INVALID_KEY    6
  93. #define BERR_DIFF_KEY       7
  94. #define BERR_INVALID_POS    8
  95. #define BERR_EOF            9
  96. #define BERR_MOD_ERR       10
  97. #define BERR_INVALID_FILE  11
  98. #define BERR_NO_FILE       12
  99. #define BERR_EXTENSION_ERR 13
  100. #define BERR_PRE_OPEN_ERR  14
  101. #define BERR_PRE_IMAGE_ERR 15
  102. #define BERR_EXPANSION_ERR 16
  103. #define BERR_CLOSE_ERROR   17
  104. #define BERR_DISK_FULL     18
  105. #define BERR_UNRECOVERABLE 19
  106. #define BERR_REC_MAN_ERR   20
  107. #define BERR_KEY_BUF_ERR   21
  108. #define BERR_REC_BUF_ERR   22
  109. #define BERR_HANDLE_NG     23
  110. #define BERR_PAGE_SIZE     24
  111. #define BERR_CREATE_IO     25
  112. #define BERR_NUM_KEYS      26
  113. #define BERR_KEY_POS       27
  114. #define BERR_REC_LEN       28
  115. #define BERR_KEY_LEN       29
  116. #define BERR_FNAME_NG      30
  117. #define BERR_EXTEND_ERR    31
  118. #define BERR_EXTEND_IO_ERR 32
  119. #define BERR_EXTEND_NAME   34
  120. #define BERR_DIR_ERROR     35
  121. #define BERR_TRANS_ERR     36
  122. #define BERR_BEG_TRANS     37
  123. #define BERR_TRANS_END     39
  124. #define BERR_TRANS_MAX     40
  125. #define BERR_INVALID_ADDR  43
  126. #define BERR_NULL_KEY      44
  127. #define BERR_NO_ACCESS     46
  128. #define BERR_MAX_FILES     47
  129. #define BERR_KEY_TYPE      48
  130. #define BERR_INVALID_OWNER 51
  131. #define BERR_CACHE_ERR     52
  132. #define BERR_VAR_PAGE      54
  133. #define BERR_MEM_ERR       57
  134. #define BERR_CONFLICT      80
  135. #define BERR_LOCK_ERR      81
  136. #define BERR_LOST_POS      82
  137. #define BERR_REC_IN_USE    84
  138. #define BERR_FILE_IN_USE   85
  139. #define BERR_TOO_MANY_FILE 86
  140. #define BERR_HANDLE_FULL   87
  141. #define BERR_MODE_ERR      88
  142. #define BERR_INCOMPAT_LOCK 93
  143.  
  144. // my own pseudo-error code.
  145. #define BERR_MEM_ALLOC    200
  146.  
  147. // Btrieve ERROR action codes.  Used by my error handler.
  148. #define BACT_ABORT    0
  149. #define BACT_RETRY    1
  150. #define BACT_FAIL     2
  151.  
  152. // open mode
  153. #define B_ACCELL       -1
  154.  
  155. // for create operation
  156. #define DUP 1
  157. #define MOD 2
  158. #define BIN 4
  159. #define NULL_VAL 8
  160. #define SEG 16
  161. #define DESC 64
  162. #define ALT 32
  163. #define SUP 128
  164. #define MAN 512
  165.  
  166. #define EXT_TYPE 256
  167. #define B_INT_TYPE 1
  168.  
  169. #define B_NUM_TYPE 8
  170. #define B_STR_TYPE 0
  171. #define B_ZSTR_TYPE 11
  172. #define BF_VARIABLE      0x01
  173. #define BF_BLANKTRUNC    0x02
  174. #define BF_DATACOMP      0x08
  175. #define BF_KEYONLY       0x10
  176. #define BF_10PCTFREE     0x40
  177. #define BF_20PCTFREE     0x80
  178. #define BF_30PCTFREE     0xC0
  179.  
  180. struct KEY_SPEC
  181. {
  182.    int   KEY_POS;
  183.    int   KEY_LEN;
  184.    int   KEY_FLAG;
  185.    long  KEY_TOTAL;
  186.    char  KEY_TYPE;
  187.    char  NULL_VALUE;
  188.    char  RESERVE1[4];
  189. };
  190.  
  191. struct FIL_SPEC
  192. {
  193.    int     REC_LEN;
  194.    int     PAGE_SIZ;
  195.    int     NDX_CNT;
  196.    long    NUM_RECS;
  197.    int     FILE_FLAG;
  198.    char    RESERVE2[2];
  199.    int     UNUSED_PGS;
  200. struct     KEY_SPEC KEY_BUF[24];
  201.   char     ALT_COL_SEQ[512];
  202. };
  203.  
  204.  
  205. #endif
  206.  
  207.