home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / database / mf_db.zip / MF.H < prev    next >
Text File  |  1993-05-21  |  5KB  |  150 lines

  1. /* MF Database Header File */
  2.  
  3. // Structures //
  4.  
  5. // Used for defining external dll extensions on mfInit
  6. typedef struct {
  7.    int   extType;             // Type of extension
  8.    char  extDLLName[128];     // Name of DLL extension
  9. } tmfExtDLL;
  10. typedef tmfExtDLL FAR * ptmfExtDLL;
  11.  
  12.  
  13. // Currently supported DLL extensions
  14.    // value for a UDK extension DLL
  15. #define     EXT_UDK        0
  16. #define     EXT_UDK_NAME   "mfUDK"
  17.  
  18.  
  19.  
  20. // Constant variable sizes
  21.     // (note:  These MAY change to unsigned longs to support DB's up to
  22.     // 4GB's (as opposed to 2GB's...)  Try to use these as your parameters
  23.     // where they are shown in the API calls...
  24. #define     RPTR        long
  25. #define     IPTR        long
  26.  
  27. #define     FPDATA      char FAR *
  28.  
  29.     // Handle to a MF database
  30. #define     hMF_DB      int
  31.  
  32.  
  33.    // SEEK information
  34. #define MFSEEK_BOF      -1
  35. #define MFSEEK_EOF      -2
  36. #define MFSEEK_NODATA   -3
  37.  
  38.    // iCode (passed integer) RETURN values
  39. #define MFSEEK_EXACT_MATCH      1
  40. #define MFSEEK_PARTIAL_MATCH    2
  41.             
  42.  
  43.    // Compare Information (Index sort orders)
  44. #define MFCOMP_CHAR     1
  45. #define MFCOMP_INT      2
  46. #define MFCOMP_LONG     3
  47. #define MFCOMP_CHARIC   4
  48. #define MFCOMP_UDK      100   // Or greater
  49.  
  50.  
  51.    // READ/WRITE options
  52. #define MFRW_ALL        -1
  53. #define MFRW_DATA       -2
  54. #define MFRW_KEY        -3
  55. //#define MFRW_KEYEXACT   0 // Index # to write for a KEYEXACT (unsupported in this release)
  56.  
  57.    // Severe-Performance options
  58. #define MF_SP_COUNT     -1
  59.  
  60.  
  61. /*
  62.     ERRORS RETURNED
  63. */
  64.         // Open
  65.     #define ERR_OPEN_UNDEFINED      -10
  66.     #define ERR_OPEN_NOHNDLS        -11
  67.     #define ERR_OPEN_INVALIDFILE    -12
  68.     #define ERR_OPEN_INVALIDFORMAT  -14
  69.     #define ERR_OPEN_NO_DBINIFILE   -15
  70.     #define ERR_OPEN_UDK_NOT_FOUND  -16
  71.  
  72.         // Close
  73.     #define ERR_CLOSE_BAD           -21
  74.  
  75.         // Write
  76.     #define ERR_WRITE_BADRECORD     -31
  77.     #define ERR_WRITE_NOLOCK        -32
  78.  
  79.         // Read
  80.     #define ERR_READ_BADRECORD      -41
  81.  
  82.         // Append
  83.     #define ERR_APPEND_NOADD        -51
  84.  
  85.         // Register
  86.     #define ERR_REG_NOTASKS         -61
  87.     #define ERR_INIT_UDK_NOT_FOUND  -16
  88.  
  89.  
  90.         // CreateDB
  91.     #define ERR_CREATEDB_BADFILE    -71
  92.     #define ERR_CREATEDB_BADRECSIZE -72
  93.  
  94.  
  95.         // Create Index
  96.     #define ERR_CREATEINDEX_BADFILE -81
  97.  
  98.         // Update Index
  99.     #define ERR_UPDINDEX_BADSEQ     -91
  100.     #define ERR_X_NOOLDKEY          -92
  101.     #define ERR_X_NOADDKEY          -93
  102.  
  103.         // Splits
  104.     #define ERR_SPLIT_NOROOM        -101
  105.  
  106.         // GENERAL
  107.     #define ERR_EOF                 -2
  108.     #define ERR_BOF                 -1
  109.         // These usually generate if you haven't been 
  110.         // verifying your RETURN codes...(They tell you
  111.         // that you passed a NEGATIVE value as a parameter...)
  112.     #define ERR_BAD_TASKSELECTOR    -220
  113.     #define ERR_BAD_HNDLSELECTOR    -221
  114.     #define ERR_BAD_INDEXSELECTOR   -222
  115.     #define ERR_BAD_EVERYTHING      -223
  116.  
  117.  
  118.  
  119.  
  120. // DEFINITIONS
  121.    // Data Manipulation
  122. int  FAR PASCAL _export mfWrite(RPTR Record, FPDATA dFill, int Task, hMF_DB dbHndl, int Option );
  123. int  FAR PASCAL _export mfRead (RPTR Record, FPDATA dFill, int Task, hMF_DB dbHndl, int Option );
  124. int  FAR PASCAL _export mfDelete(RPTR Record, int Task, hMF_DB dbHndl);
  125. RPTR FAR PASCAL _export mfAppendData(FPDATA dFill, int Task, hMF_DB dbHndl);
  126.  
  127.    // Movement
  128. RPTR FAR PASCAL _export mfSeek(FPDATA SkStr, int FAR * Code, int Task, hMF_DB dbHndl, int iHndl);
  129. RPTR FAR PASCAL _export mfSkip(RPTR record, long NumSkip, int Task, hMF_DB dbHndl, int idxNumber);
  130. RPTR FAR PASCAL _export mfTop(int Task, hMF_DB dbHndl, int idxNumber);
  131. RPTR FAR PASCAL _export mfBottom(int Task, hMF_DB dbHndl, int idxNumber);
  132.  
  133.    // Creation
  134. int FAR PASCAL _export mfCreateIndex(LPSTR FileName, int RecSize, int DataType, int NumOfIndexes);
  135. int FAR PASCAL _export mfCreateDB(LPSTR FileName, int dRecSize, int NumIndex, int FAR * iRecSize, int FAR * iType);
  136.  
  137.    // General stuff
  138. int FAR PASCAL _export mfInfoDB(int FAR * RecSize, int FAR * NumIndexs, RPTR FAR * NumRecs, int Task, hMF_DB dbHndl);
  139. int FAR PASCAL _export mfInfoIndex(int Task, hMF_DB dbHndl, int iHndl);
  140.  
  141.    // Administrative
  142. int FAR PASCAL _export mfOpen( LPSTR FileName, int Task);
  143. int FAR PASCAL _export mfClose(int Task, hMF_DB dbHndl);
  144. int FAR PASCAL _export mfInit( ptmfExtDLL szExtCalls );
  145. int FAR PASCAL _export mfDeInit(int Task);
  146.  
  147.    // Severe-performance functions
  148. long FAR PASCAL _export mfReadList(RPTR record, FPDATA passStr, int FuzzyMatch, RPTR FAR * hitList, long MaxNumHitsWanted, int Task, hMF_DB dbHndl, int iHndl);
  149.  
  150.