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

  1. { ──────────────────────────────────────────────────────────────── }
  2. {             TESTPROGRAMM 2 LOW-LEVEL-DBASE-ROUTINEN              }
  3. { ──────────────────────────────────────────────────────────────── }
  4. { Erzeugt eine Datenbank-Datei. Achtung: Es wird der Error-Handler }
  5. { "ErrPrint" eingesetzt, der einen Textdrucker an PRN voraussetzt. }
  6. { ──────────────────────────────────────────────────────────────── }
  7. {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
  8. { ──────────────────────────────────────────────────────────────── }
  9. {     History:                                                     }
  10. {  Datum     / Bearb. / Art                                        }
  11. { 12. 3.1992    MS       Implementierung.                          }
  12. { ──────────────────────────────────────────────────────────────── }
  13.  
  14. PROGRAM LL02;
  15.  
  16.   USES
  17.     Error,
  18.     LLdBase,
  19.  
  20.     ADOS,
  21.  
  22.     CRT;
  23.  
  24.  
  25.   VAR
  26.     db             : Pdbf;
  27.     Name           : STRING;
  28.     Count          : INTEGER;
  29.     Params         : BYTE;
  30.     D              : TEXT;
  31.     Typ            : CHAR;
  32.     Breite,
  33.     NK             : BYTE;
  34.  
  35.   BEGIN
  36.     SetErrHandler (ErrPrint);
  37.  
  38.     db := NewDb;
  39.  
  40.     Count := 1;
  41.  
  42.     REPEAT
  43.       Name := '';
  44.  
  45.       WRITE ('Feldname (Return=Ende): ');
  46.       READLN (Name);
  47.  
  48.       IF Name <> '' THEN
  49.       BEGIN
  50.         WRITE ('Feldtyp: ');
  51.         READLN (Typ);
  52.  
  53.         WRITE ('Breite: ');
  54.         READLN (Breite);
  55.  
  56.         WRITE ('Nachkomma: ');
  57.         READLN (NK);
  58.  
  59.         db^.Feld [Count].Name := Name;
  60.         db^.Feld [Count].Typ := Typ;
  61.         db^.Feld [Count].Size := Breite;
  62.         db^.Feld [Count].NK := NK;
  63.  
  64.         WRITELN;
  65.         INC (Count);
  66.       END;
  67.     UNTIL Name = '';
  68.  
  69.     db^.AnzFelder := Count - 1;
  70.  
  71.     WRITE ('Name Datenbank: ');
  72.     READLN (Name);
  73.     WRITELN;
  74.  
  75.     ASSIGN (D, '');
  76.     REWRITE (D);
  77.  
  78.     dbCreate (db, Name);
  79.  
  80.     IF GetErr = 0 THEN
  81.     BEGIN
  82.       WRITELN (D);
  83.       WRITELN (D, '              Datenbankstruktur:');
  84.       WRITELN (D);
  85.  
  86.       FOR Count := 1 TO AnzahlFelder (db) DO
  87.       BEGIN
  88.         WRITE (D, Count : 2, '. ', FeldName (db, Count), '     ',
  89.                                    db^.Feld [Count].Typ, '     ',
  90.                                    db^.Feld [Count].NK);
  91.  
  92.         IF db^.Feld [Count].Typ = 'N' THEN
  93.           WRITELN (D, ' : ', db^.Feld [Count].NK)
  94.         ELSE
  95.           WRITELN (D);
  96.       END; { FOR Count := 1 TO AnzahlFelder (db) DO }
  97.  
  98.       WRITELN (D);
  99.       WRITELN (D, '              Datenbankinhalt:');
  100.       WRITELN (D);
  101.  
  102.       dbFirst (db);
  103.  
  104.       WHILE NOT (dbEOF (db)) DO
  105.       BEGIN
  106.         WRITE (D, dbRecNo (db) : 4, '. ');
  107.  
  108.         FOR Count := 1 TO AnzahlFelder (db) DO
  109.           WRITE (D, dbRead (db, FeldName (db, Count)), '  ');
  110.  
  111.         WRITELN (D);
  112.  
  113.         dbSkip (db);
  114.       END; { WHILE NOT (dbEOF (db)) DO }
  115.  
  116.       WRITELN (D);
  117.  
  118.       dbClose (db);
  119.  
  120.     END; { IF GetErr = 0 THEN }
  121.  
  122.     DISPOSE (db);
  123.  
  124.     CLOSE (D);
  125.   END. { PROGRAM LL02 }
  126.