MODBASE3.DEF 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. DEFINITION MODULE ModBase3;
  2. (*
  3. * ModBase
  4. * Release 3.0
  5. * By Don Fletcher & John McMonagle
  6. * (c) Copyright 1986 - 1991 PMI
  7. * P.O. Box 8402
  8. * Green Bay WI 54308
  9. * All Rights Reserved
  10. *
  11. *)
  12. FROM SYSTEM IMPORT
  13. ADDRESS;
  14. CONST
  15. MaxRecLength = 4000;
  16. MaxField = 128;
  17. MaxHeaderLen = 32*(MaxField+1)+2;
  18. NameLen = 64;
  19. MemoSize = 512;
  20. ReadOnly = {};
  21. ReadWrite ={1};
  22. Exclusive ={4};
  23. PermitAll={6};
  24. PermitRead={5};
  25. TYPE
  26. RecordModeType=(CurrentRec,Buffer,ReRead);
  27. DBFieldDescriptor =
  28. RECORD
  29. name: ARRAY [0..9] OF CHAR;
  30. size: CARDINAL;
  31. decplaces: CARDINAL;
  32. offset: CARDINAL;
  33. fldtype,align: CHAR;(* align is to make size even *)
  34. END;
  35. DBFieldArray= ARRAY [1..MaxField] OF
  36. DBFieldDescriptor;
  37. DBFieldPtr=POINTER TO DBFieldArray;
  38. (* consider all of DBFile type read only *)
  39. DBFile;
  40. FixUpProcedure=PROCEDURE(DBFile):BOOLEAN;
  41. IndexCheckProcedure=PROCEDURE( DBFile);
  42. VAR
  43. UpDateIndexes:IndexCheckProcedure;
  44. PROCEDURE InitDBF(filename: ARRAY OF CHAR; VAR alias:
  45. DBFile; BufferSize:CARDINAL; safety,Exclusive,AutoLock:BOOLEAN;
  46. FixUp:FixUpProcedure );
  47. PROCEDURE DisposeDBF(VAR alias:DBFile);
  48. PROCEDURE OpenDBF
  49. ( alias : DBFile ):BOOLEAN;
  50. PROCEDURE BuildDBF( fields: ARRAY OF
  51. DBFieldDescriptor;NumFields:CARDINAL; alias: DBFile):CARDINAL;
  52. PROCEDURE CloseDBF( alias: DBFile);
  53. PROCEDURE UpdateDBFile( alias: DBFile);
  54. (* Used when safety is off to update DBFile and
  55. Memos to disk *)
  56. PROCEDURE ReadDBRec( alias: DBFile; recnum: LONGINT) ;
  57. PROCEDURE SetDBBuffer( alias: DBFile; BufferSize:
  58. CARDINAL );
  59. (* BufferSize in Bytes, Will set to multiple of
  60. alias.length *)
  61. PROCEDURE WriteDBRec( alias: DBFile);
  62. PROCEDURE GetField( alias: DBFile; fieldnumber:
  63. CARDINAL; VAR field: ARRAY OF CHAR);
  64. PROCEDURE Replace( alias: DBFile; fieldnumber: CARDINAL;
  65. field: ARRAY OF CHAR);
  66. PROCEDURE PosOfField( alias: DBFile; fieldname: ARRAY OF CHAR): CARDINAL;
  67. PROCEDURE AppendBlank( alias: DBFile);
  68. PROCEDURE DeleteRecord( alias: DBFile);
  69. PROCEDURE UnDeleteRecord( alias: DBFile);
  70. PROCEDURE Deleted( alias: DBFile): BOOLEAN;
  71. PROCEDURE SetDBSafetyOn( alias: DBFile);
  72. PROCEDURE SetDBSafetyOff( alias: DBFile);
  73. PROCEDURE SetRecordMode( alias: DBFile;Mode:RecordModeType);
  74. PROCEDURE LockRec( alias: DBFile;recnum:LONGINT):CARDINAL;
  75. PROCEDURE UnLockRec( alias: DBFile;recnum:LONGINT):CARDINAL;
  76. PROCEDURE DBError( alias:DBFile):CARDINAL;
  77. PROCEDURE Appending(alias:DBFile):BOOLEAN;
  78. PROCEDURE FileName(alias:DBFile;VAR Name:ARRAY OF CHAR);
  79. PROCEDURE HasMemo(alias:DBFile):BOOLEAN;
  80. PROCEDURE SafetySet(alias:DBFile):BOOLEAN;
  81. PROCEDURE IndexList(alias:DBFile):ADDRESS;
  82. PROCEDURE SetIndexList(alias:DBFile;ndx:ADDRESS);
  83. PROCEDURE Record(alias:DBFile):LONGINT;
  84. PROCEDURE FieldList(alias:DBFile):DBFieldPtr;
  85. PROCEDURE BufferSize(alias:DBFile):CARDINAL;
  86. PROCEDURE NumberOfFields(alias:DBFile):CARDINAL;
  87. PROCEDURE NumberRecords(alias:DBFile):LONGINT;
  88. PROCEDURE RecordPtr(alias:DBFile):ADDRESS;
  89. PROCEDURE RecordLength(alias:DBFile):CARDINAL;
  90. PROCEDURE OpenMemo(alias:DBFile):BOOLEAN;
  91. PROCEDURE MemoHandle(alias:DBFile):CARDINAL;
  92. PROCEDURE NilDBF(VAR alias:DBFile);
  93. PROCEDURE Initialized(alias:DBFile):BOOLEAN;
  94. PROCEDURE DefaultFixUp(alias:DBFile):BOOLEAN;
  95. END ModBase3.
  96.