home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / database / tdb / demo / db04.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-05-31  |  4.0 KB  |  108 lines

  1. { ──────────────────────────────────────────────────────────────── }
  2. {                   TDB DEMOPROGRAMM 4 - LESEN                     }
  3. { ──────────────────────────────────────────────────────────────── }
  4. { Gibt die Sätze der Datenbank "DB02.DBF" am Bildschirm aus.       }
  5. { Es wird dabei eine Datei zur Standardausgabe geöffnet, um die    }
  6. { Ausgabe auch auf ein File / den Drucker umlenken zu können.      }
  7. { ──────────────────────────────────────────────────────────────── }
  8. {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
  9. { ──────────────────────────────────────────────────────────────── }
  10. {      History:                                                    }
  11. { 1992-04-15   MS   Interfacefestlegung und Implementierung.       }
  12. { ──────────────────────────────────────────────────────────────── }
  13.  
  14. PROGRAM Db04;
  15.  
  16.   USES
  17.     DbTypes,                { Enthält die Typdefinitionen für alle }
  18.                             { Module des Datenbanksystems TDB.     }
  19.     Error,                  { Fehlerbehandlungsroutinen, -handler  }
  20.     ADatum,                 { Definition TDate (unter anderem ...) }
  21.     AStrTool,                                 { Stringformatierung }
  22.     TDB;                    { Die eigentlichen Datenbank-Objekte.  }
  23.  
  24.  
  25.   VAR
  26.     DB             : PDataBase;                  { Datenbankobjekt }
  27.     Datum          : TDate;
  28.     Cnt            : BYTE;
  29.     Typ            : CHAR;                               { Feldtyp }
  30.     Size,                                              { Feldgröße }
  31.     NK             : BYTE;          { Bei Zahlen: Nachkommastellen }
  32.     Out            : TEXT;          { Textfile für Standardausgabe }
  33.  
  34.   BEGIN                                            { Hauptprogramm }
  35.     ASSIGN (Out, '');
  36.     REWRITE (Out);                               { Standardausgabe }
  37.  
  38.     SetErrHandler (ErrPrint);         { Alle Fehler werden auf dem }
  39.                                       { Drucker mitprotokolliert.  }
  40.  
  41.     DB := NEW (PDataBase,                { Speicherallozierung und }
  42.           Use ('DB02.DBF'));        { Initialisierung des Objektes }
  43.  
  44.     IF (GetErr = 0) AND (DB^.Count > 0) THEN   { Keine Fehler ? }
  45.                                           { Überhaupt Datensätze ? }
  46.     BEGIN
  47.       WRITELN (Out);
  48.       WRITELN (Out);
  49.  
  50.       FOR Cnt := 1 TO DB^.AnzahlFelder DO
  51.       BEGIN
  52.         DB^.FeldTyp (DB^.FeldName (Cnt), Typ, Size, NK);
  53.  
  54.         IF Typ = 'D' THEN
  55.           WRITE (Out, LFormat (DB^.FeldName (Cnt), 10), ' ')
  56.         ELSE
  57.           WRITE (Out, LFormat (DB^.FeldName (Cnt), Size), ' ');
  58.       END; { FOR Cnt := 1 TO DB^.AnzahlFelder DO }
  59.  
  60.       WRITELN (Out);
  61.  
  62.       WHILE NOT (DB^.EOF) DO
  63.       BEGIN
  64.         FOR Cnt := 1 TO DB^.AnzahlFelder DO
  65.         BEGIN
  66.           DB^.FeldTyp (DB^.FeldName (Cnt), Typ, Size, NK);
  67.  
  68.           CASE Typ OF
  69.             'C' :
  70.               WRITE (Out, LFormat (DB^.Read (DB^.FeldName (Cnt)),
  71.                                                         Size), ' ');
  72.             'L' :
  73.               IF DB^.ReadB (DB^.FeldName (Cnt)) THEN
  74.                 WRITE (Out, 'J ')
  75.               ELSE
  76.                 WRITE (Out, 'N ');
  77.             'N' :
  78.               IF NK = 0 THEN
  79.                 WRITE (Out,
  80.                          DB^.ReadL (DB^.FeldName (Cnt)) : Size, ' ')
  81.               ELSE
  82.                 WRITE (Out, DB^.ReadR
  83.                              (DB^.FeldName (Cnt)) : Size : NK, ' ');
  84.             'D' :
  85.               WRITE (Out, DB^.ReadD_ (DB^.FeldName (Cnt)), ' ');
  86.             'M' :
  87.               WRITE (Out,
  88.                     LFormat ('M: ' + DB^.Read
  89.                                   (DB^.FeldName (Cnt)), Size), ' ');
  90.           END; { CASE Typ OF }
  91.         END; { FOR Cnt := 1 TO DB^.AnzahlFelder DO }
  92.  
  93.         WRITELN (Out);
  94.  
  95.         DB^.Skip (1);
  96.       END; { WHILE NOT (DB^.EOF) DO }
  97.  
  98.       DISPOSE (DB, Close);
  99.     END; { IF (GetErr = 0) AND ... }
  100.  
  101.     WRITELN;
  102.     WRITE ('Weiter mit Taste ...');
  103.     READLN;
  104.     WRITELN;
  105.  
  106.     CLOSE (Out);
  107.   END. { PROGRAM Db04 }
  108.