home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / database / nyisam / ism.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-07  |  2.9 KB  |  93 lines

  1. /*-------------------------------------------------------------------------
  2.  File: ISM.H
  3.  -------------------------------------------------------------------------*/
  4. #include <stdio.h>
  5. #include "idx.h"
  6.  
  7. #ifndef _ISM
  8. #define _ISM
  9.  
  10. typedef struct {
  11.     int ismerr;
  12.     int idxerr;
  13.     int syserr;
  14.     } _ismerr;
  15.  
  16. #define MAXISAMNAME 30
  17. #define MAXPATHLENGTH 70
  18. #define MAX_KEYLENGTH 128
  19.  
  20. typedef struct _ismdesc {
  21.     int  dhdl;
  22.     int  ihdl;
  23.     int lastidx;
  24.     long freerec;
  25.     long CurrRec;
  26.     }ISMDESC;
  27.  
  28. #define ISM_ERR_NOERROR        0
  29. #define ISM_ERR_MAXFILES        1
  30. #define ISM_ERR_CREATERROR     2
  31. #define ISM_ERR_IDXERROR        3
  32. #define ISM_ERR_DROPDAT        4
  33. #define ISM_ERR_DROPIDX        5
  34. #define ISM_ERR_CLOSERROR        6
  35. #define ISM_ERR_OPENERROR        7
  36. #define ISM_ERR_INVALIDMODE    8
  37. #define ISM_ERR_WRITERROR        9
  38. #define ISM_ERR_MALLOC            10
  39. #define ISM_ERR_READERROR        11
  40. #define ISM_ERR_INVHDL            12
  41. #define ISM_ERR_NOCURREC        13
  42. #define ISM_ERR_RECLOCK        14
  43.  
  44. #define ISM_CHAR_TYPE        0
  45. #define ISM_SHORT_TYPE        1
  46. #define ISM_LONG_TYPE        2
  47. #define ISM_MONEY_TYPE        3
  48. #define ISM_DATE_TYPE        4
  49. #define ISM_DOUBLE_TYPE     5
  50.  
  51. #define ISM_NULLSHORT    -32768
  52. #define ISM_NULLONG    -2147483648
  53.  
  54. #define ISM_QUERY_IDX        3
  55. #define ISM_RECLOC_IDX        2
  56. #define ISM_LOCKS_IDX        1
  57. #define ISM_DELETED_IDX    0
  58.  
  59. extern _ismerr ismerr;
  60. extern ISMDESC ismfiles[];
  61.  
  62. extern void ISMSetPath( char *p );
  63. extern void ISMInitFetch( int fptr, int idxnum );
  64. extern int ISMGetDict( int fptr, IDXFILE *IdxFile );
  65. extern int ISMGetIdxInfo( int fptr, int idxnum, IDXINFO *IdxInfo );
  66. extern int ISMCreate( char *filename, int reclen );
  67. extern int ISMDrop( char *filename );
  68. extern int ISMOpen( char *filename );
  69. extern int ISMClose( int fhdl );
  70. extern int ISMAddRec( int fhdl, void *buff, long *rec_num );
  71. extern int ISMDelRec( int fhdl, long rec_num );
  72. extern long ISMFetchFirst( int fhdl, int idxnum, int length, void *buff );
  73. extern long ISMFetchLast( int fhdl, int idxnum, int length, void *buff );
  74. extern long ISMFetchNext( int fhdl, int idxnum, void *buff );
  75. extern long ISMFetchPrev( int fhdl, int idxnum, void *buff );
  76. extern long ISMFetchCurr( int fhdl, int idxnum, void *buff );
  77. extern int ISMFetchRec( int fhdl, void *buff, long rptr );
  78. extern int ISMWriteRec( int fhdl, void *buff, long rptr );
  79. extern int ISMAddIdx( int fptr, int start, int len, int unique );
  80. extern int ISMDelIdx( int fptr, int idxnum );
  81. extern int ISMSetField( void *dest, short type, char *source, short length );
  82. extern int ISMGetField( void *source, short type, char *dest, short length );
  83. extern long ISMKey2Long( void *key );
  84. extern char *ISMLong2Key( long val, unsigned char *key );
  85. extern char *ISMShort2Key( short val, void *key );
  86. extern short ISMKey2Short( void *key );
  87. extern char *ISMKey2Char( void *key, char *dest, int length );
  88. extern char *ISMKey2Date( void *key, char *dest );
  89. extern char *ISMKey2Money( void *key, char *dest, int length );
  90.  
  91.  
  92. #endif
  93.