home *** CD-ROM | disk | FTP | other *** search
- /*************************************************
- ** **
- ** dbf.h **
- ** **
- ** Copyright (C) 1988, 1989, 1990, 1991 by **
- ** SoftC, Ltd. **
- ** 16820 3rd St NE **
- ** Ham Lake, MN 55304 **
- ** (612) 434-6968 **
- ** **
- ** All rights reserved. **
- *************************************************/
-
-
-
- #ifndef __SOFTC_H__
- #include "softc.h"
- #endif
-
-
-
- /**********
- *
- * Type Definitions
- *
- **********/
-
-
-
-
- typedef struct { /* database field description */
- CHAR name[11]; /* field name */
- CHAR type; /* field type
- * 'c' or 'C' - character
- * 'd' or 'D' - date
- * 'f' or 'F' - floating poINT (binary)
- * 'l' or 'L' - logical
- * 't' or 'T' - true
- * 'f' or 'F' - false
- * 'y' or 'Y' - yes
- * 'n' or 'N' - no
- * '?' - uninitialized
- * 'n' or 'N' - floating poINT (bcd) */
- INT len; /* field width */
- INT decpl; /* decimal count */
- } SC_FIELD;
-
-
- /* SoftC extended data file field types */
- #define SC_SHORT_FLD 1 /* signed SHORT integer (16 bits) */
- #define SC_USHORT_FLD 2 /* USHORT integer */
- #define SC_LONG_FLD 3 /* signed LONG integer (32 bits) */
- #define SC_ULONG_FLD 4 /* ULONG integer */
- #define SC_FLOAT_FLD 11 /* IEEE single real (32 bits) */
- #define SC_MSFLT_FLD 12 /* Microsoft floating poINT (old) */
- #define SC_DOUBLE_FLD 13 /* IEEE DOUBLE real (64 bits) */
- #define SC_MSDBL_FLD 14 /* Microsoft DOUBLE (old) */
-
-
-
- typedef struct { /* dBASE data file information packet */
- CHAR fname[80]; /* file name */
- UCHAR style; /* file type (dBase3 or dBase4) */
- CHAR memo; /* memo file required */
- CHAR mdx; /* dBase4 .MDX file required (true or false) */
- CHAR trans; /* dBase4 transaction in process (true or false) */
- CHAR encrypt; /* dBase4 data file encrypted (true or false) */
- CHAR lockt; /* record/file/no lock */
- ULONG ladrs; /* beginning address of locked area */
- ULONG lsize; /* length of locked region */
- SC_FLAGS flags; /* miscellaneous flags */
- } SC_DBFINFO;
-
- /* SC_DBFINFO memo flag */
- #define SC_USEMEMO 1 /* memo file used */
- #define SC_NOMEMO 0 /* no memo file required */
-
- /* SC_DBFINFO lockt flag */
- #define SC_DRECLCK 0x01 /* record lock active */
- #define SC_DFILLCK 0x02 /* file lock active */
-
-
- typedef struct { /* dBASE data file record information packet */
- INT reclen; /* record length in bytes */
- INT numflds; /* number of fields in record */
- CHAR F_PTR bfr; /* address of the record buffer */
- } SC_DBFRINFO;
-
-
-
-
-
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- /**********
- *
- * dBASE Database File Manipulator Prototypes
- *
- **********/
-
-
-
-
- INT scddbfrsz( INT, /* data file handle */
- INT *, /* I/O buffer length in records */
- INT ); /* set or get buffer length */
-
- INT scddbof( INT ); /* file handle */
-
- INT scddclose( INT ); /* file handle */
-
- INT scddcreate( CHAR *, /* filename */
- INT, /* number of data fields */
- SC_FIELD *, /* field description array */
- INT ); /* dBase version (3 or 4) */
-
- INT scddeof( INT ); /* file handle */
-
- INT scddflush( INT ); /* file handle */
-
- INT scddhget( INT ); /* file handle */
-
- INT scddinfo( INT, /* file handle */
- SC_DBFINFO * ); /* file information & status */
-
- INT scddlock( INT ); /* file handle */
-
- INT scddlud( INT, /* file handle */
- CHAR *, /* last update date string */
- INT ); /* date string format */
-
- INT scddopenx( INT *, /* file handle */
- CHAR *, /* filename */
- INT ); /* open mode & characteristics */
-
- INT scddpack( INT *); /* data file handle */
-
- INT scddsize( INT, /* file handle */
- LONG * ); /* number of data records */
-
- INT scddunlock( INT ); /* file handle */
-
-
-
-
- /**********
- *
- * dBASE Database Field Manipulator Prototypes
- *
- **********/
-
-
-
-
- INT scddfgets( INT, /* file handle */
- INT, /* field number */
- CHAR * ); /* buffer for field data */
-
- INT scddfget( INT, /* file handle */
- INT, /* field number */
- VOID * ); /* buffer for field data */
-
- INT scddfinfo( INT, /* file handle */
- INT *, /* length of longest field */
- SC_FIELD * ); /* field description array */
-
- INT scddfnam2no(INT, /* file handle */
- INT *, /* field number */
- CHAR *); /* field name */
-
- INT scddfputs( INT, /* file handle */
- INT, /* field number */
- CHAR * ); /* buffer for field data */
-
- INT scddfput( INT, /* file handle */
- INT, /* field number */
- VOID * ); /* buffer for field data */
-
-
-
-
- /**********
- *
- * dBASE Database Record Manipulator Prototypes
- *
- **********/
-
-
-
-
- INT scddrclear( INT ); /* file handle */
-
- INT scddrdel( INT, /* file handle */
- LONG ); /* record number to delete */
-
- INT scddrget( INT, /* file handle */
- LONG ); /* record number to read */
-
- INT scddrgetx( INT, /* file handle */
- CHAR *, /* input buffer address */
- LONG ); /* record number to read */
-
- INT scddrinfo( INT, /* file handle */
- SC_DBFRINFO * ); /* record info structure */
-
- INT scddrlock( INT, /* file handle */
- LONG ); /* record number to lock */
-
- INT scddrnum( INT, /* file handle */
- LONG * ); /* current data record number */
-
- INT scddrput ( INT, /* file handle */
- LONG *, /* record number */
- INT ); /* append or update record */
-
- INT scddrputx( INT, /* file handle */
- CHAR *, /* output buffer address */
- LONG *, /* record number */
- INT ); /* append or update record */
-
- INT scddrstat( INT ); /* file handle */
-
- INT scddrundel( INT, /* fiel handle */
- LONG ); /* record number */
-
-
- #ifdef __cplusplus
- }
- #endif
-
-
-
- /**********
- *
- * External Variables
- *
- **********/
-
-
- extern INT sc_date_style; /* date string format for scddfget/scddfput */
-
-
-
-
-
- /**********
- *
- * Compatibility Definitions
- *
- **********/
-
-
-
- #define scdfget(a,b,c) scddfget(a,b,c)
- #define scdfgetx(a,b,c,d) scddfget(a,b,c)
- #define scdfgets(a,b,c) scddfgets(a,b,c)
- #define scdfgetsx(a,b,c,d) scddfgets(a,b,c)
-
- #define scdfput(a,b,c) scddfput(a,b,c)
- #define scdfputx(a,b,c,d) scddfput(a,b,c)
- #define scdfputs(a,b,c) scddfputs(a,b,c)
- #define scdfputsx(a,b,c,d) scddfputs(a,b,c)
-
- #define scdfinfo(a,b,c) scddfinfo(a,b,c)
- #define scdfnam2no(a,b,c) scddfnam2no(a,b,c)
-
- #define scdrclear(a,b) scddrclear(a)
- #define scdrdel(a,b) scddrdel(a,b)
- #define scdrget(a,b) scddrgetx(a,NULL,b)
- #define scdrinfo(a,b,c,d,e) scddrinfo(a,b,c,d)
- #define scdrput(a,b,c) scddrputx(a,NULL,b,c)
- #define scdrundel(a,b) scddrundel(a,b)
-