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

  1. { ──────────────────────────────────────────────────────────────── }
  2. {          TDB DEMOPROGRAMM 09 - TESTDATENSÄTZE GENERIEREN         }
  3. { ──────────────────────────────────────────────────────────────── }
  4. { Erzeugt eine neue Datenbank ("DB09.DBF") und "füllt" sie mit     }
  5. { 1000 Testdatensätzen.                                            }
  6. { Anschließend wird die Datenbank normal geöffnet und die Daten-   }
  7. { bankinformationen - wie bei "DB03" - ausgegeben.                 }
  8. { ──────────────────────────────────────────────────────────────── }
  9. {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
  10. { ──────────────────────────────────────────────────────────────── }
  11. {      History:                                                    }
  12. { 1992-04-15   MS   Interfacefestlegung und Implementierung.       }
  13. { ──────────────────────────────────────────────────────────────── }
  14.  
  15. PROGRAM Db09;
  16.  
  17.   USES
  18.     DbTypes,                { Enthält die Typdefinitionen für alle }
  19.                             { Module des Datenbanksystems TDB.     }
  20.     ADatum,                 { Definition TDate (unter anderem ...) }
  21.     AStrTool,                                 { Stringformatierung }
  22.     TDB,                    { Die eigentlichen Datenbank-Objekte.  }
  23.     ATestGen,                                 { Testdatengenerator }
  24.     Error;                  { Fehlerbehandlungsroutinen, -handler  }
  25.  
  26.  
  27.   VAR
  28.     CI             : TCreateInfo;
  29.     DB             : PDataBase;                  { Datenbankobjekt }
  30.     Datum          : TDate;
  31.     Cnt            : BYTE;
  32.     Typ            : CHAR;                               { Feldtyp }
  33.     Size,                                              { Feldgröße }
  34.     NK             : BYTE;          { Bei Zahlen: Nachkommastellen }
  35.  
  36.  
  37.   BEGIN                                            { Hauptprogramm }
  38.     SetErrHandler (ErrPrint);         { Alle Fehler werden auf dem }
  39.                                       { Drucker mitprotokolliert.  }
  40.  
  41.     FILLCHAR (CI.Felder, SIZEOF (CI.Felder), 0);    { Vorsicht ist }
  42.                                    { die Mutter der Porzellankiste }
  43.  
  44.     CI.Felder [1].Name := 'Text';           { Felddefinitionen für }
  45.     CI.Felder [1].Typ := 'C';                 { die neue Datenbank }
  46.     CI.Felder [1].Size := 100;
  47.     CI.Felder [1].NK := 0;
  48.  
  49.     CI.Felder [2].Name := 'NormZahl';
  50.     CI.Felder [2].Typ := 'N';
  51.     CI.Felder [2].Size := 10;
  52.     CI.Felder [2].NK := 0;
  53.  
  54.     CI.Felder [3].Name := 'RealZahl';
  55.     CI.Felder [3].Typ := 'N';
  56.     CI.Felder [3].Size := 12;
  57.     CI.Felder [3].NK := 2;
  58.  
  59.     CI.Felder [4].Name := 'Logisch';
  60.     CI.Felder [4].Typ := 'L';
  61.     CI.Felder [4].Size := 1;
  62.     CI.Felder [4].NK := 0;
  63.  
  64.     CI.Felder [5].Name := 'Datum';
  65.     CI.Felder [5].Typ := 'D';
  66.     CI.Felder [5].Size := 8;
  67.     CI.Felder [5].NK := 0;
  68.  
  69.     CI.Felder [6].Name := 'Memos';
  70.     CI.Felder [6].Typ := 'M';
  71.     CI.Felder [6].Size := 10;
  72.     CI.Felder [6].NK := 0;
  73.  
  74.     CI.AnzFelder := 6;                        { Exakt 6 Felder ... }
  75.  
  76.     WRITELN;
  77.     WRITELN;
  78.  
  79.                            { Datenbank erzeugen, 1000 Datensätze   }
  80.                            { anhängen, Datenbank wieder schließen. }
  81.     IF GenerateCreate ('DB09', CI, 1000) THEN
  82.     BEGIN
  83.  
  84. {     DATENBANKINFORMATIONEN AUSGEBEN - VERGLEICHE "DBDEMO10" !    }
  85.  
  86.       DB := NEW (PDataBase,              { Speicherallozierung und }
  87.             Use ('DB09.DBF'));      { Initialisierung des Objektes }
  88.  
  89.       IF GetErr = 0 THEN                          { Keine Fehler ? }
  90.       BEGIN
  91.         WRITELN;
  92.         WRITELN ('Dateiname:       ', DB^.FileName);
  93.         WRITELN ('Dateigröße:      ', DB^.FileSize);
  94.         WRITELN ('Headergröße:     ', DB^.HeaderSize);
  95.         WRITELN ('Recordgröße:     ', DB^.RecordSize);
  96.         WRITELN ('dBase-Version:   ', DB^.dbVersion);
  97.  
  98.         IF DB^.ContainsMemos THEN
  99.           WRITELN ('Memos:           JA')
  100.         ELSE
  101.           WRITELN ('Memos:           NEIN');
  102.  
  103.         DB^.LastUpDate (Datum);
  104.  
  105.         WRITELN ('Anzahl Felder:   ', DB^.AnzahlFelder);
  106.  
  107.         FOR Cnt := 1 TO DB^.AnzahlFelder DO
  108.         BEGIN
  109.           DB^.FeldTyp (DB^.FeldName (Cnt), Typ, Size, NK);
  110.  
  111.           WRITE ('  Feldname: ',
  112.                  LFormat (DB^.FeldName (Cnt), 14),
  113.                  ' Typ: ', Typ, ' Größe: ', Size);
  114.  
  115.           IF NK <> 0 THEN
  116.             WRITELN (' : ', NK)
  117.           ELSE
  118.             WRITELN;
  119.         END;
  120.  
  121.         WRITELN ('Anzahl Sätze:    ', DB^.LastRec);
  122.         WRITELN ('Aktueller Satz:  ', DB^.RecNo);
  123.  
  124.         IF DB^.BOF THEN
  125.           WRITELN ('Begin Of File:   JA')
  126.         ELSE
  127.           WRITELN ('Begin Of File:   NEIN');
  128.  
  129.         IF DB^.EOF THEN
  130.           WRITELN ('End Of File:     JA')
  131.         ELSE
  132.           WRITELN ('End Of File:     NEIN');
  133.  
  134.         DISPOSE (DB, Close);
  135.       END;
  136.  
  137.       WRITELN;
  138.       WRITE ('Weiter mit Taste ...');
  139.       READLN;
  140.       WRITELN;
  141.     END;
  142.   END. { PROGRAM Db09 }
  143.