home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / modula2 / library / dbf_file / buildndx.def next >
Text File  |  1991-04-17  |  3KB  |  53 lines

  1. DEFINITION MODULE BuildNDX;
  2.  
  3. (**********************************************************************)
  4. (* Copyright 1990,1991 by David Albert                                *)
  5. (**********************************************************************)
  6.  
  7. CONST
  8.    (* 3 levels of error handling are provided - None, AskUser, Halt.        *)
  9.    None      = 0;       (*   ErrCode & DosCode set on errors, nothing else  *)
  10.    AskUser   = 1;       (*   ErrCode & DOSCode set, Error Dialog with user  *)
  11.    Halt      = 2;       (*   Error Dialog indicating error source then HALT *)
  12.  
  13.    (* ErrCodes provide information about source of errors.                  *)
  14.    ErrOpen   = 1;       (*   Unable to open index file.                     *)
  15.    ErrClose  = 2;       (*   Unable to close index file.                    *)
  16.    ErrRead   = 3;       (*   Unable to read index page/data.                *)
  17.    ErrWrite  = 4;       (*   Unable to write index page/data.               *)
  18.    ErrSeek   = 5;       (*   Unable to seek to index page/data.             *)
  19.    ErrLock   = 6;       (*   Unable to lock index page/file.                *)
  20.    ErrUnLock = 7;       (*   Unable to unlock index page/file.              *)
  21.    ErrHandle = 8;       (*   Bad file handle (file probably not opened).    *)
  22.    ErrMemory = 9;       (*   Not enough memory for index/page buffers.      *)
  23.    ErrCreate = 10;      (*   Unable to create index file.                   *)
  24.    ErrPageNo = 100;     (*   Invalid page number.                           *)
  25.    ErrBadNDX = 102;     (*   File not NDX or NDX damaged.                   *)
  26.    ErrLockedNDX = 103;  (*   NDX file locked by another application.        *)
  27.    ErrBadField  = 104;  (*   Invalid field specified.                       *)
  28.  
  29. TYPE
  30.     FilterType = PROCEDURE() : BOOLEAN;
  31.     KeyExpType = PROCEDURE(VAR ARRAY OF CHAR);
  32.  
  33. VAR MultiUser : BOOLEAN;           (* Multi-user mode                   OFF *)
  34.     Safety    : BOOLEAN;           (* Safety mode                       OFF *)
  35.     ErrCheck  : CARDINAL;          (* Error handling level          AskUser *)
  36.     ErrCode   : CARDINAL;          (* Error return code                   0 *)
  37.     DosCode   : CARDINAL;          (* DOS extended error code             0 *)
  38.     Filter : FilterType;
  39.     KeyExp : KeyExpType;
  40.  
  41. PROCEDURE MakeNDX(DBFName : ARRAY OF CHAR;      (* DBF file name.       *)
  42.                   NDXName : ARRAY OF CHAR;      (* NDX file name.       *)
  43.                   KeyName : ARRAY OF CHAR;      (* dBase key expression *)
  44.                   KeyLen  : CARDINAL);          (* length of key field  *)
  45.  
  46. PROCEDURE Deleted () : BOOLEAN;                 (* TRUE if rec deleted  *)
  47. PROCEDURE GetField (FieldName : ARRAY OF CHAR;  (* Gets field from data *)
  48.                     VAR Field : ARRAY OF CHAR); (*   record.            *)
  49.  
  50. PROCEDURE DefaultFilter() : BOOLEAN;
  51. PROCEDURE DefaultKeyExp(VAR Key : ARRAY OF CHAR);
  52.  
  53. END BuildNDX.