home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / database / tdb / demo / ll01.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-06-01  |  4.9 KB  |  177 lines

  1. { ──────────────────────────────────────────────────────────────── }
  2. {             TESTPROGRAMM 1 LOW-LEVEL-DBASE-ROUTINEN              }
  3. { ──────────────────────────────────────────────────────────────── }
  4. { "Viewer" für beliebige dBase-Dateien.                            }
  5. { ──────────────────────────────────────────────────────────────── }
  6. {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
  7. { ──────────────────────────────────────────────────────────────── }
  8. {     History:                                                     }
  9. {  Datum     / Bearb. / Art                                        }
  10. { 12. 3.1992    MS       Implementierung.                          }
  11. { ──────────────────────────────────────────────────────────────── }
  12.  
  13. PROGRAM LL01;
  14.  
  15.   USES
  16.     Error,
  17.     LLdBase,
  18.  
  19.     ADOS,
  20.  
  21.     CRT;
  22.  
  23.  
  24.   VAR
  25.     db             : Pdbf;
  26.     Name           : STRING;
  27.     Count          : INTEGER;
  28.     Params         : BYTE;
  29.     D              : TEXT;
  30.  
  31.   BEGIN
  32.     SetErrHandler (ErrPrint);
  33.  
  34.     db := NewDb;
  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.         dbUse (db, Name);
  57.  
  58.         WRITELN (D);
  59.         WRITELN (D, '              Datenbankstruktur:');
  60.         WRITELN (D);
  61.  
  62.         FOR Count := 1 TO AnzahlFelder (db) DO
  63.         BEGIN
  64.           WRITE (D, Count : 2, '. ', FeldName (db, Count), '     ',
  65.                                      db^.Feld [Count].Typ, '     ',
  66.                                      db^.Feld [Count].NK);
  67.  
  68.           IF db^.Feld [Count].Typ = 'N' THEN
  69.             WRITELN (D, ' : ', db^.Feld [Count].NK)
  70.           ELSE
  71.             WRITELN (D);
  72.         END; { FOR Count := 1 TO AnzahlFelder (db) DO }
  73.  
  74.         WRITELN (D);
  75.         WRITELN (D, AnzahlFelder (db), ' Felder, ', dbCount (db),
  76.                                                    ' Datensätze');
  77.         WRITELN (D);
  78.  
  79.         WRITELN (D);
  80.         WRITELN (D, '              Datenbankinhalt:');
  81.         WRITELN (D);
  82.  
  83.         dbFirst (db);
  84.  
  85.         WHILE NOT (dbEOF (db)) DO
  86.         BEGIN
  87.           WRITE (D, dbRecNo (db) : 4, '. ');
  88.  
  89.           FOR Count := 1 TO AnzahlFelder (db) DO
  90.             WRITE (D, dbRead (db, FeldName (db, Count)), '  ');
  91.  
  92.           WRITELN (D);
  93.  
  94.           dbSkip (db);
  95.         END; { WHILE NOT (dbEOF (db)) DO }
  96.  
  97.         WRITELN (D);
  98.  
  99.         dbClose (db);
  100.       END; { IF NOT (ExistiertDatei (Name)) THEN ... ELSE }
  101.     END { IF PARAMCOUNT < 1 THEN }
  102.     ELSE
  103.     BEGIN
  104.       FOR Params := 1 TO PARAMCOUNT DO
  105.       BEGIN
  106.         Name := PARAMSTR (Params);
  107.  
  108.         IF POS ('.', Name) < 1 THEN
  109.           Name := Name + '.DBF';
  110.  
  111.         IF NOT (ExistiertDatei (Name)) THEN
  112.         BEGIN
  113.           WRITELN (D);
  114.           WRITELN (D, 'Datenbank ', Name, ' nicht gefunden !');
  115.           WRITELN (D);
  116.         END { IF NOT (ExistiertDatei (Name)) THEN }
  117.         ELSE
  118.         BEGIN
  119.           dbUse (db, Name);
  120.  
  121.           WRITELN (D);
  122.           WRITELN (D, '              Datenbankstruktur:');
  123.           WRITELN (D);
  124.  
  125.           FOR Count := 1 TO AnzahlFelder (db) DO
  126.           BEGIN
  127.             WRITE (D, Count : 2, '. ', FeldName (db, Count), '     ',
  128.                                        db^.Feld [Count].Typ, '     ',
  129.                                        db^.Feld [Count].NK);
  130.  
  131.             IF db^.Feld [Count].Typ = 'N' THEN
  132.               WRITELN (D, ' : ', db^.Feld [Count].NK)
  133.             ELSE
  134.               WRITELN (D);
  135.           END; { FOR Count := 1 TO AnzahlFelder (db) DO }
  136.  
  137.           WRITELN (D);
  138.           WRITELN (D, AnzahlFelder (db), ' Felder, ', dbCount (db),
  139.                                                      ' Datensätze');
  140.           WRITELN (D);
  141.  
  142.           WRITELN (D);
  143.           WRITELN (D, '              Datenbankinhalt:');
  144.           WRITELN (D);
  145.  
  146.           dbFirst (db);
  147.  
  148.           WHILE NOT (dbEOF (db)) DO
  149.           BEGIN
  150.             WRITE (D, dbRecNo (db) : 4, '. ');
  151.  
  152.             FOR Count := 1 TO AnzahlFelder (db) DO
  153.               WRITE (D, dbRead (db, FeldName (db, Count)), '  ');
  154.  
  155.             WRITELN (D);
  156.  
  157.             dbSkip (db);
  158.           END; { WHILE NOT (dbEOF (db)) DO }
  159.  
  160.           WRITELN (D);
  161.  
  162.           dbClose (db);
  163.  
  164.           IF Params <> PARAMCOUNT THEN
  165.           BEGIN
  166.             WRITELN (D);
  167.             WRITELN (D);
  168.           END; { IF Params <> PARAMCOUNT THEN }
  169.         END; { IF NOT (ExistiertDatei (Name)) THEN ... ELSE }
  170.       END; { FOR Params := 1 TO PARAMCOUNT DO }
  171.     END; { IF PARAMCOUNT < 1 THEN ... ELSE }
  172.  
  173.     DISPOSE (db);
  174.  
  175.     CLOSE (D);
  176.   END. { PROGRAM LL01 }
  177.