home *** CD-ROM | disk | FTP | other *** search
- { ──────────────────────────────────────────────────────────────── }
- { TDB DEMOPROGRAMM 4 - LESEN }
- { ──────────────────────────────────────────────────────────────── }
- { Gibt die Sätze der Datenbank "DB02.DBF" am Bildschirm aus. }
- { Es wird dabei eine Datei zur Standardausgabe geöffnet, um die }
- { Ausgabe auch auf ein File / den Drucker umlenken zu können. }
- { ──────────────────────────────────────────────────────────────── }
- { (c) 1992 by Aurora featuring M.J. Schwaiger }
- { ──────────────────────────────────────────────────────────────── }
- { History: }
- { 1992-04-15 MS Interfacefestlegung und Implementierung. }
- { ──────────────────────────────────────────────────────────────── }
-
- PROGRAM Db04;
-
- USES
- DbTypes, { Enthält die Typdefinitionen für alle }
- { Module des Datenbanksystems TDB. }
- Error, { Fehlerbehandlungsroutinen, -handler }
- ADatum, { Definition TDate (unter anderem ...) }
- AStrTool, { Stringformatierung }
- TDB; { Die eigentlichen Datenbank-Objekte. }
-
-
- VAR
- DB : PDataBase; { Datenbankobjekt }
- Datum : TDate;
- Cnt : BYTE;
- Typ : CHAR; { Feldtyp }
- Size, { Feldgröße }
- NK : BYTE; { Bei Zahlen: Nachkommastellen }
- Out : TEXT; { Textfile für Standardausgabe }
-
- BEGIN { Hauptprogramm }
- ASSIGN (Out, '');
- REWRITE (Out); { Standardausgabe }
-
- SetErrHandler (ErrPrint); { Alle Fehler werden auf dem }
- { Drucker mitprotokolliert. }
-
- DB := NEW (PDataBase, { Speicherallozierung und }
- Use ('DB02.DBF')); { Initialisierung des Objektes }
-
- IF (GetErr = 0) AND (DB^.Count > 0) THEN { Keine Fehler ? }
- { Überhaupt Datensätze ? }
- BEGIN
- WRITELN (Out);
- WRITELN (Out);
-
- FOR Cnt := 1 TO DB^.AnzahlFelder DO
- BEGIN
- DB^.FeldTyp (DB^.FeldName (Cnt), Typ, Size, NK);
-
- IF Typ = 'D' THEN
- WRITE (Out, LFormat (DB^.FeldName (Cnt), 10), ' ')
- ELSE
- WRITE (Out, LFormat (DB^.FeldName (Cnt), Size), ' ');
- END; { FOR Cnt := 1 TO DB^.AnzahlFelder DO }
-
- WRITELN (Out);
-
- WHILE NOT (DB^.EOF) DO
- BEGIN
- FOR Cnt := 1 TO DB^.AnzahlFelder DO
- BEGIN
- DB^.FeldTyp (DB^.FeldName (Cnt), Typ, Size, NK);
-
- CASE Typ OF
- 'C' :
- WRITE (Out, LFormat (DB^.Read (DB^.FeldName (Cnt)),
- Size), ' ');
- 'L' :
- IF DB^.ReadB (DB^.FeldName (Cnt)) THEN
- WRITE (Out, 'J ')
- ELSE
- WRITE (Out, 'N ');
- 'N' :
- IF NK = 0 THEN
- WRITE (Out,
- DB^.ReadL (DB^.FeldName (Cnt)) : Size, ' ')
- ELSE
- WRITE (Out, DB^.ReadR
- (DB^.FeldName (Cnt)) : Size : NK, ' ');
- 'D' :
- WRITE (Out, DB^.ReadD_ (DB^.FeldName (Cnt)), ' ');
- 'M' :
- WRITE (Out,
- LFormat ('M: ' + DB^.Read
- (DB^.FeldName (Cnt)), Size), ' ');
- END; { CASE Typ OF }
- END; { FOR Cnt := 1 TO DB^.AnzahlFelder DO }
-
- WRITELN (Out);
-
- DB^.Skip (1);
- END; { WHILE NOT (DB^.EOF) DO }
-
- DISPOSE (DB, Close);
- END; { IF (GetErr = 0) AND ... }
-
- WRITELN;
- WRITE ('Weiter mit Taste ...');
- READLN;
- WRITELN;
-
- CLOSE (Out);
- END. { PROGRAM Db04 }
-