[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
DB06B.PAS

 { ---------------------------------------------------------------- }
 {         TDB DEMOPROGRAMM 6b - VERWENDUNG "SIMPLEINDEX"           }
 { ---------------------------------------------------------------- }
 { Verwendet die von "DB05" erzeugte Datenbank samt Indices (m.ssen }
 { bereits existieren), .ffnet Datenbank- und Indexfiles (mittels   }
 { "AutoIndex") und gibt die Datenbank jeweils nach den verschie-   }
 { denen Indices sortiert aus.                                      }
 { ---------------------------------------------------------------- }
 { Als Error-Handler wird wieder "ErrPrint" eingesetzt, wodurch     }
 { eventuelle Fehler am Drucker mitprotokolliert werden.            }
 { ---------------------------------------------------------------- }
 {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
 { ---------------------------------------------------------------- }
 {      History:                                                    }
 { 1992-06-02   MS   Interfacefestlegung und Implementierung.       }
 { ---------------------------------------------------------------- }

 PROGRAM Db06b;

 {$UNDEF Windows}

   USES
 {$IFDEF Windows}
     WINCRT,
 {$ENDIF}
     DbTypes,                 { Enth.lt die Typdefinitionen f.r alle }
                             { Module des Datenbanksystems TDB.     }
     LongIdle,                { Idle-Prozeduren f.r l.ngere Vorg.nge }
     Error,                   { Fehlerbehandlungsroutinen, -handler  }
     TDB;                    { Die eigentlichen Datenbank-Objekte.  }


   VAR
     DB             : PDataBase;                  { Datenbankobjekt }
     Cnt            : LONGINT;
     Index          : PINDEX;


   BEGIN                                            { Hauptprogramm }
 {$IFNDEF Windows}
     SetErrHandler (ErrPrint);         { Alle Fehler werden auf dem }
                                       { Drucker mitprotokolliert.  }
     SetLongIdleHandler (LIdleScreenInit,    { "Fortschrittsanzeige" }
                                 LIdleScreenUpDate,  LIdleScreenDone);
 {$ENDIF}
     WRITELN (MEMAVAIL);

    { Speicherallozierung und Initialisierung des Datenbankobjektes }
     DB := NEW (PDataBase,  Use ('DB05'));

     IF (GetErr = 0) AND (DB^.Count > 0) THEN      { Keine Fehler ? }
     BEGIN
       DB^.SetDeleted (On);

       WRITELN (MEMAVAIL);

       DB^.First;

       Cnt := 0;
                                       { Prim.rindex ist der Name ! }
       WHILE (GetErr = 0) AND (NOT (DB^.EOF)) DO
       BEGIN
         INC (Cnt);
         WRITELN (Cnt : 3,  '-',  DB^.RecNo : 3,  ': ',
                       DB^.READ ('NAME'),  ' ',  DB^.ReadR ('GEHALT'));
         DB^.Skip (1);
       END; { WHILE NOT DB^.EOF DO }

       WRITELN;
       WRITELN ('Das waren ',  Cnt,  ' Datens.tze ! Stimmts ?');

       Index := NEW (PIndex,  AutoUse ('DB05Anschrift',  DB));
       DB^.IndexOn (Index^.Key,  Index);
       Index := NEW (PIndex,  AutoUse ('DB05Postleitzahl',  DB));
       DB^.IndexOn (Index^.Key,  Index);
       Index := NEW (PIndex,  AutoUse ('DB05GEBOREN',  DB));
       DB^.IndexOn (Index^.Key,  Index);
       Index := NEW (PIndex,  AutoUse ('DB05GEHALT',  DB));
       DB^.IndexOn (Index^.Key,  Index);
       Index := NEW (PIndex,  AutoUse ('DB05Name',  DB));
       DB^.IndexOn (Index^.Key,  Index);

       DB^.Last;

       Cnt := 0;
       WRITELN;

                                       { Prim.rindex ist der Name ! }
       WHILE (GetErr = 0) AND (NOT (DB^.BOF)) DO
       BEGIN
         INC (Cnt);
         WRITELN (Cnt : 3,  '-',  DB^.RecNo : 3,  ': ',
                       DB^.READ ('NAME'),  ' ',  DB^.ReadR ('GEHALT'));
         DB^.Skip ( - 1);
       END; { WHILE NOT DB^.EOF DO }

       WRITELN;
       WRITELN ('Das waren ',  Cnt,  ' Datens.tze ! Stimmts ?');

       DISPOSE (DB,  CLOSE); { Index wird automatisch mit gel.scht ! }
     END; { IF (GetErr = 0) AND ... }

     WRITELN (MEMAVAIL);

     WRITELN;
     WRITE ('Weiter mit Taste ...');
     READLN;
   END. { PROGRAM Db06b }

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson