home *** CD-ROM | disk | FTP | other *** search
- /*-------------------------------------------------------------------------
- File: ISM.H
- -------------------------------------------------------------------------*/
- #include <stdio.h>
- #include "idx.h"
-
- #ifndef _ISM
- #define _ISM
-
- typedef struct {
- int ismerr;
- int idxerr;
- int syserr;
- } _ismerr;
-
- #define MAXISAMNAME 30
- #define MAXPATHLENGTH 70
- #define MAX_KEYLENGTH 128
-
- typedef struct _ismdesc {
- int dhdl;
- int ihdl;
- int lastidx;
- long freerec;
- long CurrRec;
- }ISMDESC;
-
- #define ISM_ERR_NOERROR 0
- #define ISM_ERR_MAXFILES 1
- #define ISM_ERR_CREATERROR 2
- #define ISM_ERR_IDXERROR 3
- #define ISM_ERR_DROPDAT 4
- #define ISM_ERR_DROPIDX 5
- #define ISM_ERR_CLOSERROR 6
- #define ISM_ERR_OPENERROR 7
- #define ISM_ERR_INVALIDMODE 8
- #define ISM_ERR_WRITERROR 9
- #define ISM_ERR_MALLOC 10
- #define ISM_ERR_READERROR 11
- #define ISM_ERR_INVHDL 12
- #define ISM_ERR_NOCURREC 13
- #define ISM_ERR_RECLOCK 14
-
- #define ISM_CHAR_TYPE 0
- #define ISM_SHORT_TYPE 1
- #define ISM_LONG_TYPE 2
- #define ISM_MONEY_TYPE 3
- #define ISM_DATE_TYPE 4
- #define ISM_DOUBLE_TYPE 5
-
- #define ISM_NULLSHORT -32768
- #define ISM_NULLONG -2147483648
-
- #define ISM_QUERY_IDX 3
- #define ISM_RECLOC_IDX 2
- #define ISM_LOCKS_IDX 1
- #define ISM_DELETED_IDX 0
-
- extern _ismerr ismerr;
- extern ISMDESC ismfiles[];
-
- extern void ISMSetPath( char *p );
- extern void ISMInitFetch( int fptr, int idxnum );
- extern int ISMGetDict( int fptr, IDXFILE *IdxFile );
- extern int ISMGetIdxInfo( int fptr, int idxnum, IDXINFO *IdxInfo );
- extern int ISMCreate( char *filename, int reclen );
- extern int ISMDrop( char *filename );
- extern int ISMOpen( char *filename );
- extern int ISMClose( int fhdl );
- extern int ISMAddRec( int fhdl, void *buff, long *rec_num );
- extern int ISMDelRec( int fhdl, long rec_num );
- extern long ISMFetchFirst( int fhdl, int idxnum, int length, void *buff );
- extern long ISMFetchLast( int fhdl, int idxnum, int length, void *buff );
- extern long ISMFetchNext( int fhdl, int idxnum, void *buff );
- extern long ISMFetchPrev( int fhdl, int idxnum, void *buff );
- extern long ISMFetchCurr( int fhdl, int idxnum, void *buff );
- extern int ISMFetchRec( int fhdl, void *buff, long rptr );
- extern int ISMWriteRec( int fhdl, void *buff, long rptr );
- extern int ISMAddIdx( int fptr, int start, int len, int unique );
- extern int ISMDelIdx( int fptr, int idxnum );
- extern int ISMSetField( void *dest, short type, char *source, short length );
- extern int ISMGetField( void *source, short type, char *dest, short length );
- extern long ISMKey2Long( void *key );
- extern char *ISMLong2Key( long val, unsigned char *key );
- extern char *ISMShort2Key( short val, void *key );
- extern short ISMKey2Short( void *key );
- extern char *ISMKey2Char( void *key, char *dest, int length );
- extern char *ISMKey2Date( void *key, char *dest );
- extern char *ISMKey2Money( void *key, char *dest, int length );
-
-
- #endif