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

 { ---------------------------------------------------------------- }
 {                TDB DEMOPROGRAMM 5 - ERZEUGEN INDEX               }
 { ---------------------------------------------------------------- }
 { Erzeugt eine neue Datenbank ("DB05.DBF") und "f.llt" sie mit     }
 { 100 Testdatens.tzen.                                             }
 { Anschlie.end wird die Datenbank normal ge.ffnet und f.r die      }
 { diversen Felder der Datenbank jeweils ein Index erzeugt.         }
 { ---------------------------------------------------------------- }
 { Als Error-Handler wird wieder "ErrPrint" eingesetzt, wodurch     }
 { eventuelle Fehler am Drucker mitprotokolliert werden.            }
 { ---------------------------------------------------------------- }
 {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
 { ---------------------------------------------------------------- }
 {      History:                                                    }
 { 1992-04-28   MS   Interfacefestlegung und Implementierung.       }
 { ---------------------------------------------------------------- }

 PROGRAM Db05;

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


   VAR
     DB             : PDataBase;                  { Datenbankobjekt }
     Index1,                                          { Indexobjekte }
     Index2,
     Index3,
     Index4,
     Index5         : PIndex;
     IdxCI          : TIdxCreateInfo;
                           { Wird zum Initialisieren Index ben.tigt }
     CI             : TCreateInfo;

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

     FILLCHAR (CI.Felder,  SIZEOF (CI.Felder),  0);    { Vorsicht ist }
                                    { die Mutter der Porzellankiste }

     CI.Felder [1].Name := 'NAME';           { Felddefinitionen f.r }
     CI.Felder [1].Typ := 'C';                 { die neue Datenbank }
     CI.Felder [1].Size := 50;
     CI.Felder [1].NK := 0;

     CI.Felder [2].Name := 'VORNAME';
     CI.Felder [2].Typ := 'C';
     CI.Felder [2].Size := 50;
     CI.Felder [2].NK := 0;

     CI.Felder [3].Name := 'STRASSE';
     CI.Felder [3].Typ := 'C';
     CI.Felder [3].Size := 100;
     CI.Felder [3].NK := 0;

     CI.Felder [4].Name := 'PLZ';
     CI.Felder [4].Typ := 'N';
     CI.Felder [4].Size := 12;
     CI.Felder [4].NK := 0;

     CI.Felder [5].Name := 'GEBOREN';
     CI.Felder [5].Typ := 'D';
     CI.Felder [5].Size := 8;
     CI.Felder [5].NK := 0;

     CI.Felder [6].Name := 'GEHALT';
     CI.Felder [6].Typ := 'N';
     CI.Felder [6].Size := 16;
     CI.Felder [6].NK := 2;

     CI.AnzFelder := 6;                        { Exakt 6 Felder ... }

     WRITELN;
     WRITELN;

                             { Datenbank erzeugen, 100 Datens.tze   }
                            { anh.ngen, Datenbank wieder schlie.en. }
     WRITELN (GenerateCreate ('DB05',  CI,  100));

     WRITELN (MEMAVAIL);

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

     IF (GetErr = 0) AND (DB^.Count > 0) THEN      { Keine Fehler ? }
     BEGIN
       IdxCI.AField := 'NAME';                    { Auf Feld "Name" }
       IdxCI.Typ := NTX;                        { Typ Clipper-Index }
       IdxCI.IndexLen := 40;            { Schl.ssell.nge 20 Zeichen }
       IdxCI.KeyBuild := 'NAME';             { dBase-"Bauanleitung" }

                           { Initialisierung / Erstellung Indexfile }
       Index1 := NEW (PIndex,  Create ('DB05Name',  IdxCI,  DB));

       DB^.IndexOn ('NAME',  Index1);

       IdxCI.AField := 'STRASSE';              { Auf Feld "Strasse" }
       IdxCI.Typ := NTX;                        { Typ Clipper-Index }
       IdxCI.IndexLen := 60;            { Schl.ssell.nge 20 Zeichen }
       IdxCI.KeyBuild := 'STRASSE';          { dBase-"Bauanleitung" }

                           { Initialisierung / Erstellung Indexfile }
       Index2 := NEW (PIndex,  Create ('DB05STR',  IdxCI,  DB));

       DB^.IndexOn ('STRASSE',  Index2);

       IdxCI.AField := 'PLZ';                      { Auf Feld "PLZ" }
       IdxCI.Typ := NTX;                        { Typ Clipper-Index }
       IdxCI.IndexLen := 40;            { Schl.ssell.nge 20 Zeichen }
       IdxCI.KeyBuild := 'PLZ';              { dBase-"Bauanleitung" }

                           { Initialisierung / Erstellung Indexfile }
       Index3 := NEW (PIndex,  Create ('DB05PLZ',  IdxCI,  DB));

       DB^.IndexOn ('PLZ',  Index3);

       IdxCI.AField := 'GEBOREN';              { Auf Feld "GEBOREN" }
       IdxCI.Typ := NTX;                        { Typ Clipper-Index }
       IdxCI.IndexLen := 40;            { Schl.ssell.nge 20 Zeichen }
       IdxCI.KeyBuild := 'GEBOREN';          { dBase-"Bauanleitung" }

                           { Initialisierung / Erstellung Indexfile }
       Index4 := NEW (PIndex,  Create ('DB05GEBOREN',  IdxCI,  DB));

       DB^.IndexOn ('GEBOREN',  Index4);

       IdxCI.AField := 'GEHALT';                { Auf Feld "GEHALT" }
       IdxCI.Typ := NTX;                        { Typ Clipper-Index }
       IdxCI.IndexLen := 40;            { Schl.ssell.nge 20 Zeichen }
       IdxCI.KeyBuild := 'GEHALT';           { dBase-"Bauanleitung" }

                           { Initialisierung / Erstellung Indexfile }
       Index5 := NEW (PIndex,  Create ('DB05GEHALT',  IdxCI,  DB));

       DB^.IndexOn ('GEHALT',  Index5);

       WRITELN (MEMAVAIL);

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

     WRITELN (MEMAVAIL);

     WRITELN;
     WRITE ('Weiter mit Return-Taste ...');
     READLN;
   END. { PROGRAM Db05 }

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