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

  1. { ──────────────────────────────────────────────────────────────── }
  2. {     TDB-TESTPROGRAMM 10 - VIEWER FÜR BELIEBIGE DBASE-DATEIEN     }
  3. { ──────────────────────────────────────────────────────────────── }
  4. { Es werden die in der Kommandozeile angegebenen Datenbank-Dateien }
  5. { - sofern möglich / existent - in Struktur und Inhalt angezeigt.  }
  6. { Wildcards sind nicht erlaubt; sollte keine Datei angegeben wer-  }
  7. { den, so wird eine Eingabe erfragt.                               }
  8. { ──────────────────────────────────────────────────────────────── }
  9. {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
  10. { ──────────────────────────────────────────────────────────────── }
  11. {      History:                                                    }
  12. { 1992-03-15   MS   Modulschnittstelle / Objektdefinitionen        }
  13. { ──────────────────────────────────────────────────────────────── }
  14.  
  15. PROGRAM TDBTst1;
  16.  
  17.   USES
  18.     ADOS,
  19.  
  20.     Error,
  21.     TDB;
  22.  
  23.   VAR
  24.     db             : PDataBase;
  25.     Name           : STRING;
  26.     Count          : INTEGER;
  27.     Typ            : CHAR;
  28.     NK,
  29.     Size,
  30.     Params         : BYTE;
  31.     D              : TEXT;
  32.  
  33.   BEGIN
  34.     SetErrHandler (ErrPrint);
  35.  
  36.     ASSIGN (D, '');
  37.     REWRITE (D);
  38.  
  39.     IF PARAMCOUNT < 1 THEN
  40.     BEGIN
  41.       WRITELN;
  42.       WRITE ('Dateiname: ');
  43.       READLN (Name);
  44.  
  45.       IF POS ('.', Name) < 1 THEN
  46.         Name := Name + '.DBF';
  47.  
  48.       IF NOT (ExistiertDatei (Name)) THEN
  49.       BEGIN
  50.         WRITELN (D);
  51.         WRITELN (D, 'Datenbank ', Name, ' nicht gefunden !');
  52.         WRITELN (D);
  53.       END { IF NOT (ExistiertDatei (Name)) THEN }
  54.       ELSE
  55.       BEGIN
  56.         db := NEW (PDataBase, Use (Name));
  57.  
  58.         WRITELN (D);
  59.         WRITELN (D, '              Datenbankstruktur:');
  60.         WRITELN (D);
  61.  
  62.         FOR Count := 1 TO db^.AnzahlFelder DO
  63.         BEGIN
  64.           db^.FeldTyp (db^.FeldName (Count), Typ, Size, NK);
  65.  
  66.           WRITE (D, Count : 2, '. ', db^.FeldName (Count), '     ',
  67.                                                   Typ, '     ', NK);
  68.  
  69.           IF Typ = 'N' THEN
  70.             WRITELN (D, ' : ', NK)
  71.           ELSE
  72.             WRITELN (D);
  73.         END; { FOR Count := 1 TO db^.AnzahlFelder DO }
  74.  
  75.         WRITELN (D);
  76.         WRITELN (D, db^.AnzahlFelder, ' Felder, ', db^.Count,
  77.                                                      ' Datensätze');
  78.         WRITELN (D);
  79.  
  80.         WRITELN (D);
  81.         WRITELN (D, '              Datenbankinhalt:');
  82.         WRITELN (D);
  83.  
  84.         IF db^.EOF THEN
  85.         BEGIN
  86.           WRITELN (D);
  87.           WRITELN (D, 'Keine Datensätze gespeichert');
  88.         END
  89.         ELSE
  90.         BEGIN
  91.           db^.First;
  92.  
  93.           WHILE NOT (db^.EOF) DO
  94.           BEGIN
  95.             WRITE (D, db^.RecNo : 4, '. ');
  96.  
  97.             FOR Count := 1 TO db^.AnzahlFelder DO
  98.               WRITE (D, db^.Read (db^.FeldName (Count)), '  ');
  99.  
  100.             WRITELN (D);
  101.  
  102.             db^.Skip (1);
  103.           END; { WHILE NOT (db^.EOF) DO }
  104.         END; { IF db^.EOF THEN ... ELSE }
  105.  
  106.         WRITELN (D);
  107.  
  108.         DISPOSE (db, Close);
  109.       END; { IF NOT (ExistiertDatei (Name)) THEN ... ELSE }
  110.     END { IF PARAMCOUNT < 1 THEN }
  111.     ELSE
  112.     BEGIN
  113.       FOR Params := 1 TO PARAMCOUNT DO
  114.       BEGIN
  115.         Name := PARAMSTR (Params);
  116.  
  117.         IF POS ('.', Name) < 1 THEN
  118.           Name := Name + '.DBF';
  119.  
  120.         IF NOT (ExistiertDatei (Name)) THEN
  121.         BEGIN
  122.           WRITELN (D);
  123.           WRITELN (D, 'Datenbank ', Name, ' nicht gefunden !');
  124.           WRITELN (D);
  125.         END { IF NOT (ExistiertDatei (Name)) THEN }
  126.         ELSE
  127.         BEGIN
  128.           db := NEW (PDataBase, Use (Name));
  129.  
  130.           WRITELN (D);
  131.           WRITELN (D, '              Datenbankstruktur:');
  132.           WRITELN (D);
  133.  
  134.           FOR Count := 1 TO db^.AnzahlFelder DO
  135.           BEGIN
  136.             db^.FeldTyp (db^.FeldName (Count), Typ, Size, NK);
  137.  
  138.             WRITE (D, Count : 2, '. ', db^.FeldName (Count), '     ',
  139.                                                     Typ, '     ', NK);
  140.  
  141.             IF Typ = 'N' THEN
  142.               WRITELN (D, ' : ', NK)
  143.             ELSE
  144.               WRITELN (D);
  145.           END; { FOR Count := 1 TO db^.AnzahlFelder DO }
  146.  
  147.           WRITELN (D);
  148.           WRITELN (D, db^.AnzahlFelder, ' Felder, ', db^.Count,
  149.                                                        ' Datensätze');
  150.           WRITELN (D);
  151.  
  152.           WRITELN (D);
  153.           WRITELN (D, '              Datenbankinhalt:');
  154.           WRITELN (D);
  155.  
  156.           IF db^.EOF THEN
  157.           BEGIN
  158.             WRITELN (D);
  159.             WRITELN (D, 'Keine Datensätze gespeichert');
  160.           END
  161.           ELSE
  162.           BEGIN
  163.             db^.First;
  164.  
  165.             WHILE NOT (db^.EOF) DO
  166.             BEGIN
  167.               WRITE (D, db^.RecNo : 4, '. ');
  168.  
  169.               FOR Count := 1 TO db^.AnzahlFelder DO
  170.                 WRITE (D, db^.Read (db^.FeldName (Count)), '  ');
  171.  
  172.               WRITELN (D);
  173.  
  174.               db^.Skip (1);
  175.             END; { WHILE NOT (db^.EOF) DO }
  176.           END; { IF db^.EOF THEN ... ELSE }
  177.  
  178.           WRITELN (D);
  179.  
  180.           DISPOSE (db, Close);
  181.         END; { IF NOT (ExistiertDatei (Name)) THEN ... ELSE }
  182.       END; { FOR Params := 1 TO PARAMCOUNT DO }
  183.     END; { IF PARAMCOUNT < 1 THEN ... ELSE }
  184.  
  185.     CLOSE (D);
  186.   END. { PROGRAM TDBView }
  187.