home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / database / softc210 / headers / ndx.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-05-21  |  5.3 KB  |  195 lines

  1. /*************************************************
  2.  **                                             **
  3.  **   ndx.h                                         **
  4.  **                                             **
  5.  **    Copyright (C) 1988, 1989, 1990, 1991 by  **
  6.  **               SoftC, Ltd.                   **
  7.  **               16820 3rd St NE               **
  8.  **               Ham Lake, MN 55304            **
  9.  **               (612) 434-6968                **
  10.  **                                             **
  11.  **             All rights reserved.            **
  12.  *************************************************/
  13.  
  14.  
  15.  
  16. #ifndef __SOFTC_H__
  17. #include "softc.h"
  18. #endif
  19.  
  20.  
  21.  
  22. /**********
  23.  *
  24.  *  Type Definitions
  25.  *
  26.  **********/
  27.  
  28.  
  29.  
  30.  
  31. typedef struct {  /* dBASE index file information packet */
  32.   CHAR fname[80]; /* file name */
  33.   CHAR keytype;   /* key type ('C' Character, 'N' Date/Numeric) */
  34.   CHAR keylen;    /* key length */
  35.   INT exprlen;    /* key expression length */
  36.   SC_FLAGS flags; /* miscellaneous flags */
  37. } SC_NDXINFO;
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48.  
  49.  
  50. /**********
  51.  *
  52.  *  dBASE III+ Index File Manipulators Prototypes
  53.  *
  54.  **********/
  55.  
  56.  
  57.  
  58.  
  59. INT scdnbfrsz(  INT,              /* index file handle */
  60.                 INT *,            /* buffer length in pages */
  61.                 INT );            /* set or get buffer length */
  62.  
  63. INT scdnclose(  INT );            /* file handle */
  64.  
  65. INT scdncreate( CHAR *,           /* filename */
  66.                 INT,              /* index key type */
  67.                 CHAR *,           /* key expression */
  68.                 INT );            /* key length */
  69.  
  70. INT scdnexpr(   INT,              /* file handle */
  71.                 CHAR * );         /* key expression */
  72.  
  73. INT scdnflush(  INT );            /* file handle */
  74.  
  75. INT scdnhget(   INT );            /* file handle */
  76.  
  77. INT scdnindex(  INT,              /* data file handle */
  78.                 CHAR *,           /* new file name */
  79.                 INT,              /* index key type */
  80.                 CHAR *,           /* key expression */
  81.                 INT );            /* key length */
  82.  
  83. INT scdninfo(   INT,              /* file handle */
  84.                 SC_NDXINFO * );   /* file information and status */
  85.  
  86. INT scdnopenx(  INT *,            /* file handle */
  87.                 CHAR *,           /* filename */
  88.                 INT );            /* open mode and characteristics */
  89.  
  90.  
  91.  
  92.  
  93. /**********
  94.  *
  95.  *  dBASE III+ Index Key Building Prototypes
  96.  *
  97.  **********/
  98.  
  99.  
  100.  
  101.  
  102. INT scdnkdate(  CHAR *,           /* numeric date */
  103.                 CHAR *,           /* date string */
  104.                 INT );            /* date string format type */
  105.  
  106. INT scdnkmake(  INT,              /* .DBF file handle */
  107.                 INT,              /* .NDX file handle */
  108.                 VOID ** );        /* index key */
  109.  
  110. INT scdnknum(   CHAR *,           /* dBASE numeric key */
  111.                 DOUBLE );         /* C DOUBLE */
  112.  
  113.  
  114.  
  115.  
  116.  
  117. /**********
  118.  *
  119.  *  dBASE III+ Index Key Manipulator Prototypes
  120.  *
  121.  **********/
  122.  
  123.  
  124.  
  125.  
  126. INT scdnkadd(   INT,              /* file handle */
  127.                 VOID *,           /* key string */
  128.                 LONG );           /* data record number */
  129.  
  130. INT scdnkbot(   INT,              /* file handle */
  131.                 VOID *,           /* key string */
  132.                 LONG *);          /* data record number */
  133.  
  134. INT scdnkcur(   INT,              /* file handle */
  135.                 VOID *,           /* key string */
  136.                 LONG *);          /* data record number */
  137.  
  138. INT scdnkdel(   INT,              /* file handle */
  139.                 VOID *,           /* key string */
  140.                 LONG );           /* data record number */
  141.  
  142. INT scdnkfind(  INT,              /* file handle */
  143.                 VOID *,           /* key string */
  144.                 LONG *,           /* data record number */
  145.                 INT);             /* exact match or first */
  146.  
  147. INT scdnknext(  INT,              /* file handle */
  148.                 VOID *,           /* key string */
  149.                 LONG *);          /* data record number */
  150.  
  151. INT scdnkprev(  INT,              /* file handle */
  152.                 VOID *,           /* key string */
  153.                 LONG *);          /* data record number */
  154.  
  155. INT scdnktop(   INT,              /* file handle */
  156.                 VOID *,           /* key string */
  157.                 LONG *);          /* data record number */
  158.  
  159.  
  160.  
  161.  
  162.  
  163. #ifdef __cplusplus
  164. }
  165. #endif
  166.  
  167.  
  168.  
  169.  
  170. /**********
  171.  *
  172.  *  Compatibility Definitions
  173.  *
  174.  **********/
  175.  
  176.  
  177.  
  178. #define scdkadd(a,b,c)      scdnkadd(a,b,c);
  179. #define scdkcur(a,b,c)      scdnkcur(a,b,c);
  180. #define scdkdate(a,b)       scdnkdate(a,b,SC_YMD)
  181. #define scdkdatex(a,b,c)    scdnkdate(a,b,c)
  182. #define scdkdel(a,b,c)      scdnkdel(a,b,c)
  183. #define scdkfind(a,b,c,d)   scdnkfind(a,b,c,d)
  184. #define scdkfirst(a,b,c)    scdnktop(a,b,c)
  185. #define scdklast(a,b,c)     scdnkbot(a,b,c)
  186. #define scdkmake(a,b,c)     scdnkmake(a,b,c)
  187. #define scdkmakex(a,b,c,d)  scdnkmake(a,b,c)
  188. #define scdknext(a,b,c)     scdnknext(a,b,c)
  189. #define scdkprev(a,b,c)     scdnkprev(a,b,c)
  190.  
  191. #define scdnopen(a,b)       scdnopenx(a,b,SC_RDWR | SC_FLUSH | SC_EXCLUDE)
  192. #define scdpinfo(a,b)       scdnbfrsz(a,b,SC_GETSZ)
  193. #define scdpnum(a,b)        scdnbfrsz(a,b,SC_SETSZ)
  194.  
  195.