[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
DBTYPES.INT

 { ---------------------------------------------------------------- }
 {                        TYPDEFINITIONEN                           }
 { ---------------------------------------------------------------- }
 { Dieses Modul enth.lt alle Typdefinitionen, die in den Modulen    }
 { LLMemo, LLIndex, LLDBase und TDB verwendet werden.               }
 { Wurden in diese Unit ausgelagert, da auf die hier definierten    }
 { Typen von allen Modulen ebenso wie von der Applikation aus zuge- }
 { griffen werden k.nnen mu..                                       }
 { ---------------------------------------------------------------- }
 {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
 { ---------------------------------------------------------------- }

 UNIT DbTypes;

 INTERFACE


   CONST

 { ---------------------------------------------------------------- }
 { Zur besseren .bersichtlichkeit bei den SetXXX-Methoden des       }
 { TDataBase-Objektes.                                              }
 { ---------------------------------------------------------------- }

     On             = True;
     Off            = False;


 { ---------------------------------------------------------------- }
 { Maximal m.gliche Anzahl von Feldern pro Datenbank.               }
 { ---------------------------------------------------------------- }

     MaxFelder      = 255;


 { ---------------------------------------------------------------- }
 { Mittels der Netzwerkunterst.tzung durch "SHARE" (im Lieferumfang }
 { von DOS ab Version 3.0) ist im Netzwerkbetrieb eine ansatzweise  }
 { Schutzfunktion durch File-Locking erreichbar; die Pr.senz von    }
 { SHARE.EXE kann mittels der Funktion "ShareInstalled" aus der     }
 { Unit "AShare" .berpr.ft werden.                                  }
 { ---------------------------------------------------------------- }
 { Die Variable FILEMODE der Unit System ist standardm..ig auf 2    }
 { gesetzt, was f.r manche Anwendungen den Nachteil hat, da. eine   }
 { Datei mehrfach ge.ffnet werden kann.                             }
 { Mit dem hier definierten Wert 18 wird ein grunds.tzlicher Schutz }
 { der Dateien beim Netzwerkbetrieb gew.hrleistet, indem allen an-  }
 { deren Programmen der Zugriff auf die gerade ge.ffneten Dateien   }
 { verweigert wird; "Error" meldet beim Versuch, die gleiche Daten- }
 { bank noch einmal zu .ffnen, den Fehler Nummer 17 ("DOS verwei-   }
 { gert Zugriff auf Datei").                                        }
 { ---------------------------------------------------------------- }
 { Die Bedeutungen der Bits im Byte (db)FileMode sind:              }
 { - 210:   Access-Code.  000: nur Lesen                            }
 {                        001: nur Schreiben                        }
 {                        010: Lesen und Schreiben.                 }
 { - 3:     Reserviert.   Besser auf 0 setzen ...                   }
 { - 654:   Sharing-Mode. 000: Compatibility Mode; kein Zugriffs-   }
 {                             schutz.                              }
 {                        001: Keinerlei Zugriffsrechte f.r andere  }
 {                             Programme (weder Lesen noch Schrei-  }
 {                             ben).                                }
 {                        010: Andere Programme d.rfen die Datei    }
 {                             nur lesen.                           }
 {                        011: Andere Programme d.rfen die Datei    }
 {                             nur beschreiben.                     }
 {                        100: Alle anderen Programme d.rfen mit    }
 {                             der Datei alle machen (Schreiben /   }
 {                             Lesen).                              }
 { - 7:     Inheritance.  Wenn dieses Bit gel.scht ist, so erben    }
 {                        die von diesem Programm gestartete Pro-   }
 {                        gramme die bei diesem .ffnen erworbenen   }
 {                        Zugriffsberechtigungen ("Privilegien-     }
 {                        stadel").                                 }
 { ---------------------------------------------------------------- }
 { Noch ein Tip f.r die, die diesen kleinen Trick selbst verwenden  }
 { wollen: die Konstante FileMode wird von Turbo-Pascal nur beim    }
 { .ffnen von Dateien des Typs "FILE" oder "FILE OF XXX" verwendet, }
 { nicht (!) jedoch bei Textdateien ("TEXT").                       }
 { ---------------------------------------------------------------- }

     DbFileMode     : BYTE = 18;


 { ---------------------------------------------------------------- }
 { Diese (typisierte) Real-Konstante gibt an, mit welchem Wert bei  }
 { "TDataBase.Pack" standardm..ig die Index-Reorganisations-Routine }
 { "IdxReIndex" aufgerufen wird; der hier verwendete Wert 0,8 ent-  }
 { spricht dem von Nanosoft empfohlenen Standardwert und kann im    }
 { Bereich von 0,55 bis 0,95 an die eigenen Bed.rfnisse (H.ufigkeit }
 { von .nderungen und Reindizierungsl.ufen etc.) angepa.t werden.   }
 { ---------------------------------------------------------------- }
 { N.here Hinweise / tiefergehende Dokumentation siehe Interface    }
 { Unit "LLIndex" bzw. Benutzerhandbuch !                           }
 { ---------------------------------------------------------------- }

     IdxAuslastung  : REAL = 0.8;


   TYPE

 { ---------------------------------------------------------------- }
 { Typ f.r den Feldnamen.                                           }
 { ---------------------------------------------------------------- }

     TFeldStr       = STRING [10];

 { ---------------------------------------------------------------- }
 { Typ f.r die Felddefinition. Beinhaltet alle zu einem Feld (eines }
 { Datenbank-Satzes) geh.renden Informationen.                      }
 { Der Feldtyp ist ohne weiteres erweiterbar, beispielsweise um den }
 { Typ BLOB (Binary Large Object Block) oder Grafik - nur geht dann }
 { die Kompatibilit.t zu dBase / Clipper verloren.                  }
 { ---------------------------------------------------------------- }

     TFeld          = RECORD
       Name         : TFeldStr;                          { Feldname }
       Typ          : CHAR;      { C = String, N = Zahl, D = Datum, }
                                 {  L = Logisch (Boolean), M = Memo }
       Size         : BYTE;                             { Feldl.nge }
       NK           : BYTE;          { Bei Zahlen: Nachkommastellen }
       Off          : WORD;          { ??? - Ashton-Tate fragen ... }
     END; { RECORD TFeld }


 { ---------------------------------------------------------------- }
 { Nummer eines Memo-Satzes. In diesem Format erfolgt der Eintrag   }
 { in die DBF-Datei.                                                }
 { ---------------------------------------------------------------- }

     TSatzNr        = STRING [10];


 { ---------------------------------------------------------------- }
 { Typ des Index-Files: Momentan nur NTX verf.gbar.                 }
 { Clipper (NTX), dBase (NDX), Nanosoft (NSX) oder unbekannt.       }
 { Das Konzept sieht eine gewisse Flexibilit.t f.r Erweiterungen    }
 { vor - z.B. f.r den BTI (Borland-Turbo-Index) - sofern er jemals  }
 { herauskommt.                                                     }
 { ---------------------------------------------------------------- }

     TIdxTyp        = (NTX,  NDX,  NSX,  NKX);                    { NS }


   CONST

 { ---------------------------------------------------------------- }
 { Die Konstanten, die f.r die Methode "Search" des Datenbank-      }
 { Objektes angeben, wie gesucht werden soll.                       }
 { ---------------------------------------------------------------- }
 { cpEqual:        Test auf Gleichheit. Sucht den ersten Datensatz, }
 {                 der gleich ist dem Suchbegriff, wobei gleich     }
 {                 bedeutet, da. der Suchbegriff am Anfang des      }
 {                 Feldinhaltes enthalten sein mu.. Das wiederum    }
 {                 impliziert, da. die Suche nach einem leeren      }
 {                 Suchbegriff automatisch den gesamten Datenbank-  }
 {                 inhalt in sortierter Reihenfolge zur.ckgibt.     }
 { cpExactEqual:   Wie cpEqual, nur da. Suchbegriff und Feld exakt  }
 {                 .bereinstimmen m.ssen.                           }
 { cpIsIn:         Sucht nach Feldinhalten, in denen der Suchbe-    }
 {                 griff enthalten ist - oder umgekehrt. Dieses     }
 {                 Verfahren ist nur f.r Spezialanwendungen sinn-   }
 {                 voll, da es nat.rlich sehr langsam ist: es       }
 {                 k.nnen ja klarerweise keine Indices verwendet    }
 {                 werden.                                          }
 { cpLess:         Sucht den n.chstkleineren Datensatz (oder mathe- }
 {                 matisch: den gr..ten aller kleineren Datens.tze) }
 { cpGreater:      Sucht den n.chstgr..eren Datensatz (oder mathe-  }
 {                 matisch: den kleinsten aller gr..eren Datens.tze)}
 { cpLessEqual:    Kombination aus cpEqual und cpLess: Liefert alle }
 {                 Datens.tze die kleiner gleich dem Suchbegriff    }
 {                 sind.                                            }
 { cpGreaterEqual: Kombination aus cpEqual und cpGreater: Liefert   }
 {                 alle Datens.tze die gr..er gleich dem Such-      }
 {                 begriff sind.                                    }
 { cpNot:          Liefert den ersten Datensatz, der ungleich dem   }
 {                 Suchbegriff ist.                                 }
 { cpExactNot:     Sucht den ersten Datensatz, der exakt ungleich   }
 {                 dem Suchbegriff ist; beispielsweise anwendbar    }
 {                 zum Suchen nach Datens.tzen, in denen das ange-  }
 {                 gebene Feld leer ist.                            }
 { cpSoundEx:      Sucht nach der (in dBase beliebten) SOUNDEX-     }
 {                 Methode, wodurch das alte "Schwaiger oder doch   }
 {                 Schweiger"-Problem gel.st werden kann.           }
 { Die verschiedenen Suchmethoden k.nnen nicht kombiniert werden    }
 { (w.re ja auch kaum sinnvoll). Soweit m.glich und vorhanden       }
 { werden nat.rlich Indices zur Beschleunigung der Suche verwendet. }
 { ---------------------------------------------------------------- }

     CpEqual        = 1;
     CpExactEqual   = 2;
     CpIsIn         = 3;
     CpLess         = 4;
     CpGreater      = 5;
     CpLessEqual    = 6;
     CpGreaterEqual = 7;
     CpNot          = 8;
     CpExactNot     = 9;
     CpSoundEx      = 10;


   TYPE

 { ---------------------------------------------------------------- }
 { Definition eines Such-Records, er enth.lt alle f.r die Suche in  }
 { einer Datenbank notwendigen Daten. Die Funktion "NewSearchRec"   }
 { (siehe dort) erleichtert das Setzen der Daten.                   }
 { ---------------------------------------------------------------- }
 { FName bezeichnet das Feld, in dem gesucht werden soll.           }
 { What enth.lt den Vergleichsstring; dieser wird entsprechend dem  }

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