{ --------------------------------------------------------------- }
{ Dieser Quelltext ist urheberrechtlich geschuetzt.               }
{ (c) 1991-1999 Peter Mandrella                                   }
{ (c) 2000-2001 OpenXP-Team                                       }
{ (c) 2002-2005 FreeXP, http://www.freexp.de                      }
{ CrossPoint ist eine eingetragene Marke von Peter Mandrella.     }
{                                                                 }
{ Die Nutzungsbedingungen fuer diesen Quelltext finden Sie in der }
{ Datei SLIZENZ.TXT oder auf www.crosspoint.de/oldlicense.html.   }
{ --------------------------------------------------------------- }
{ $Id: datadef.pas,v 1.8 2005/01/01 11:16:27 mw Exp $ }

{ DATABASE.PAS - globale Deklarationen }

{$I XPDEFINE.INC }

unit datadef;

interface

uses xpglobal;

const   dbEMShandle   : word = 0;
        dbInterrProc  : pointer = nil;

{$IFDEF UnixFS }
        dbExt         = '.db1';
        dbIxExt       = '.ix1';
        dbExtExt      = '.eb1';
{$ELSE }
        dbExt         = '.DB1';
        dbIxExt       = '.IX1';
        dbExtExt      = '.EB1';
{$ENDIF }

        dbFeldNameLen = 10;

        dbTypeString  = 1;    { String mit Lngenbyte, Freiraum 0-gefllt }
        dbTypeInt     = 2;    { numerisch mitVorzeichen, 1/2/4 Bytes      }
        dbTypeReal    = 3;    { Real 6 Bytes                              }
        dbTypeDatum   = 4;    { Datum 4 Bytes t/m/jj  ==  LongInt         }
        dbUntyped     = 5;    { untypisiert, feste Lnge                  }
        dbUntypedExt  = 6;    { bis 32K Lnge, 4Byte-Zeiger auf DBD-File  }

        dbFlagIndexed = 1;    { Flag fr dbOpen }

        icIndexNum    = 1;    { <- Anzahl Indizes   (indexnr)     }
        icIndex       = 2;    { <- indexstr [ / indexproc]        }
        icOpenWindow  = 3;    { -> Message-Fenster                }
        icShowIx      = 4;    { -> Anzeige (df/indexnr/percent)   }
        icCloseWindow = 6;    { -> Message-Fenster schliessen     }
        icOpenCWindow = 7;    { -> Message-Fenster f. Konvert.    }
        icShowConvert = 8;    { -> Anzeige (df/percemt)           }
        icOpenPWindow = 9;    { -> Pack-Fenster                   }
        icShowPack    = 10;   { -> Anzeige (df/percent)           }
        icOpenKwindow = 11;   { -> Kill-EB1-Fenster               }
        icShowKillX   = 12;   { -> Anzeige (df/percent/count)     }


type    DB          = pointer;   { allgemeiner Datenbank-Typ }
        dbFeldStr   = string[dbFeldNameLen];
        dbFileName  = string[80];

        dbFeldTyp   = packed record             { Felder s.u. (dbfeld)      }
                        fname     : dbFeldStr;  { Name aus A..Z,_           }
                        ftyp      : byte;       { 1..6                      }
                        fsize     : smallword;  { phys. Feldgráe bei 1,2,5 }
                        fnlen,fnk : byte;       { nur bei Typ 2,3           }
                        fofs      : smallword;  { intern: Offset im record  }
                        indexed   : boolean;    { intern: indiziertes Feld  }
                      end;

        dbFeldListe = packed record
                        felder : smallword;
                        feld   : array[0..1000] of dbFeldTyp;  { 0=INT_NR }
                      end;
        dbFLP       = ^dbFeldListe;

        dbIndexFunc = function(dpb:DB):string;
        dbIndexCRec = packed record
                        command  : byte;        { ->  }
                        indexnr  : byte;        { <-> }
                        df       : dbFileName;  { ->  }
                        indexstr : string[80];  { <-  }
                        indexfunc: dbIndexFunc; { <-  }
                        indexsize: byte;        { <-  }
                        percent  : byte;        { ->  }
                        count    : longint;     { ->  }
                      end;
        dbIndexCProc= procedure(var ICR:dbIndexCrec);  { s. Dateiende! }


implementation

end.
{
  $Log: datadef.pas,v $
  Revision 1.8  2005/01/01 11:16:27  mw
  MW: - Willkommen im Jahr 2005

  Revision 1.7  2004/01/09 16:18:55  mw
  MW: - Wir haben jetzt 2004!!

  Revision 1.6  2003/07/30 23:09:48  my
  MY:- Source-Header auf "FreeXP" aktualisiert, einige Detailkorrekturen
       an CVS-Logs vorgenommen und hier und da CVS-Loginfos implementiert.

  Revision 1.5  2000/05/02 19:13:58  hd
  xpcurses statt crt in den Units

  Revision 1.4  2000/03/06 08:51:04  mk
  - OpenXP/32 ist jetzt Realitaet

  Revision 1.3  2000/02/17 16:14:19  mk
  MK: * ein paar Loginfos hinzugefuegt

}
