[<<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