home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TFF120.ZIP / FETCH2.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-01-04  |  1.7 KB  |  61 lines

  1. Program FETCH2;
  2.  
  3. Uses MAXVAR, MAXUTIL, MAXDBF;
  4.  
  5.       {  GET INFORMATION ABOUT THE 'DBF' FIELDS }
  6.  
  7. Var
  8.    dName       :   str255;
  9.    dbf         :   dFile;
  10.    Flds        :   Fields;
  11.    NumFlds, i  :   integer;
  12.    Total       :   integer;
  13.  
  14. {$I DPERR.INC}
  15.  
  16. Function OpenForInfo(dName:str255;Var dbf:dFile;Var Flds:Fields): integer;
  17. Var
  18.    Error        : str255;
  19.    RecordLength : integer;
  20.    Day,Month    : byte;
  21.    Year         : byte;
  22.    FldNum       : integer;
  23. begin
  24.    Result := dp_OpenDBF(dName,dplSingle,dbf);
  25.    Error  := dpError(Result);
  26.    Result := dp_GetInfo( dbf, RecordLength, Day, Month, Year, FldNum, Flds );
  27.    Error  := dpError(Result);
  28.    OpenForInfo := FldNum;
  29.    Result := dp_CloseDBF(dbf);
  30.    Error  := dpError(Result);
  31. end;
  32.  
  33. begin
  34.    WriteLn(' DISPLAY THE STRUCTURE OF ANY DBASE3''S FILENAME.DBF');
  35.    Write('Enter a valid database file name please. ( .dbf extension assumed ) ');
  36.    ReadLn(dName);
  37.    dName := dName + '.dbf';
  38.    NumFlds := OpenForInfo (dName, dbf, Flds);
  39.    Total := 0;
  40.    WriteLn('Field  Field Name  Type       Width    Dec');
  41.    For i := 1 to NumFlds do
  42.    begin
  43.       With Flds[i] do
  44.       begin
  45.          Write (i:5,'  ',FieldNm,dp_Strng(' ',12-Length(FieldNm)));
  46.          Case dType of
  47.             'C' : Write ('Character');
  48.             'N' : Write ('Numeric  ');
  49.             'D' : Write ('Date     ');
  50.             'L' : Write ('Logical  ');
  51.             'M' : Write ('Memo     ');
  52.          end; { Case }
  53.          Total := Total + Width;
  54.          Write (Width:7);
  55.          if dType = 'N' then Write (Dec:7);
  56.          WriteLn;
  57.       end; { With }
  58.    end;
  59.    WriteLn('** Total **',(Total + 1):24);
  60. end.
  61.