[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.Go (P : LONGINT) : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Setzt den Datensatzzeiger auf den angegebenen Datensatz - sofern }
{ vorhanden. Es wird eine Bereichs.berpr.fung vorgenommen, die }
{ False zur.ckgibt, wenn nicht positioniert werden konnte. }
{ ---------------------------------------------------------------- }
{ Sollte die Datenbank indiziert sein (PrimeIdx <> Nil), so wird }
{ auf den Datensatz gesprungen, der in der Indexordnung (!) an }
{ der p-ten Stelle steht. }
{ ---------------------------------------------------------------- }
{ Bei "IdxGo" wird auf den angegebenen Satz - unabh.ngig vom "Set- }
{ Deleted"-Flag - auch dann positioniert, wenn dieser gel.scht }
{ ist ! }
{ ---------------------------------------------------------------- }
{ Das Gegenst.ck zu "IdxGo" ist "IdxRecNo", das die (logische) }
{ Position des Satzzeigers gem.. Indexreihenfolge zur.ckgibt. }
{ ---------------------------------------------------------------- }
{ Aus Performance-Gr.nden sollte auf "IdxGo" - ebenso auf "Go" - }
{ in indizierten Datenbanken verzichtet werden zugunsten von Skip. }
{ Eine entsprechende Konzeption ist bereits in der Analyse / im }
{ Entwurf von N.ten und sollte keineswegs der Bequemlichkeit hal- }
{ ber .bergangen werden ! }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.IdxGo (P : LONGINT) : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Bewegt den Satzzeiger auf die durch "Rel" relativ zur aktuellen }
{ Stelle angegebene Position. }
{ Ist ein Prim.rindex definiert (Instanz "PrimeIdx"), so wird die }
{ Verschiebung gem.. der Indexreihenfolge durchgef.hrt. }
{ ---------------------------------------------------------------- }
{ Der R.ckgabewert ist True, wenn ein Skip (0) ausgef.hrt oder bei }
{ einem "richtigen" Skip das Dateiende nicht erreicht wurde; sonst }
{ Dateiende erreicht) oder wenn ein Fehler auftrat wird das Resul- }
{ tat False. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.Skip (Rel : LONGINT) : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Setzt den Datensatzzeiger auf den n.chsten Datensatz - sofern }
{ vorhanden. Es wird eine Bereichs.berpr.fung vorgenommen, die }
{ False zur.ckgibt, wenn nicht positioniert werden konnte. }
{ Wenn das Ende der Datenbank erreicht wird, so wird das EOF-Flag }
{ gesetzt. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.MOVE : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Setzt den Datensatzzeiger auf den vorherigen Datensatz - sofern }
{ vorhanden. Es wird eine Bereichs.berpr.fung vorgenommen, die }
{ False zur.ckgibt, wenn nicht positioniert werden konnte. }
{ Wenn der Anfang der Datenbank erreicht wird, so wird das BOF- }
{ Flag gesetzt. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.DeMove : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Wenn State = Off gesetzt wird, so werden bei First, Last und }
{ Skip auch alle gel.schten Datens.tze angezeigt (sprich nicht }
{ unterdr.ckt; darum Off); sonst eben nicht (On = unterdr.cke ge- }
{ gel.schte Datens.tze). }
{ ---------------------------------------------------------------- }
{ Defaultwert ist "On" !!! }
{ ---------------------------------------------------------------- }
{ Nach dem Setzen des Flags wird "First" aufgerufen, um einen }
{ definierten Zustand herzustellen; der R.ckgabewert ist bei er- }
{ folgreicher Ausf.hrung True, sonst False. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.SetDeleted (State : BOOLEAN) : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Setzt den Datensatzzeiger auf den ersten Datensatz - sofern }
{ .berhaupt Daten vorhanden sind. Es wird das BOF-Flag gesetzt. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.First : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Setzt den Datensatzzeiger auf den letzten Datensatz - sofern }
{ .berhaupt Daten vorhanden sind. Es wird das EOF-Flag gesetzt. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.Last : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Gibt True zur.ck, wenn das Ende der Datenbank erreicht wurde - }
{ oder wenn diese leer ist. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.EOF : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Gibt True zur.ck, wenn der Anfang der Datenbank erreicht wurde - }
{ oder wenn diese leer ist. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.BOF : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Gibt die Anzahl der Datens.tze zur.ck. Diese kann zwischen 0 }
{ (Datenbank leer) und ca. 1 Milliarde liegen. }
{ Bei der "Count"-Methode wird - im Gegensatz zu "LastRec" - nicht }
{ einfach die Anzahl der physikalisch vorhandenen Records zur.ck- }
{ gegeben, sondern es wird die Datenbank sequentiell (!!!) durch- }
{ forstet und nur die Anzahl der logisch vorhandenen (i.e. nicht }
{ gel.schten) Datens.tze zur.ckgegeben. }
{ Traten dabei Fehler auf (keine Datens.tze in der Datenbank etc.),}
{ so wird als Funktionsresultat -1 zur.ckgegeben. }
{ ---------------------------------------------------------------- }
{ Achtung: Nach dem Aufruf von "Count" steht der Satzzeiger auf }
{ dem ersten Datensatz (entsprechend Aufruf "First") ! }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.Count : LONGINT;
{ ---------------------------------------------------------------- }
{ Gibt die momentane Position des Satzzeigers zur.ck, sprich die }
{ Nummer des aktuellen Datensatzes. }
{ Ist das logische .quivalent zu "Go". }
{ ---------------------------------------------------------------- }
{ Die Position des Satzzeigers wird durch "RecNo" nicht ver.ndert. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.RecNo : LONGINT;
{ ---------------------------------------------------------------- }
{ Gibt die momentane Position des Index-Satzzeigers zur.ck, sprich }
{ die Position innerhalb des Index-Baumes. }
{ Ist das logische .quivalent zu "IdxGo". }
{ ---------------------------------------------------------------- }
{ Die Position des Satzzeigers wird durch "IdxRecNo" nicht ver.n- }
{ dert. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.IdxRecNo : LONGINT;
{ ---------------------------------------------------------------- }
{ Gibt die Anzahl der Datens.tze zur.ck. Diese kann zwischen 0 }
{ (Datenbank leer) und ca. 1 Milliarde liegen. }
{ ---------------------------------------------------------------- }
{ Die Position des Satzzeigers wird durch "LastRec" nicht ver.n- }
{ dert. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.LastRec : LONGINT;
{ ---------------------------------------------------------------- }
{ Liest aus dem aktuellen Datensatz das Feld mit dem angegebenen }
{ Namen und gibt den Inhalt als String (!) zur.ck - unabh.ngig vom }
{ tats.chlichen Typ des Feldes. Also z.B. bei Datumsfeldern }
{ "19920316" oder bei Boolean "T" oder "F". }
{ ---------------------------------------------------------------- }
{ Bei Memofeldern wird nur der _Index_ des Memoeintrages in der }
{ Memodatei zur.ckgegeben; der Text kann dann mittels MemoRead }
{ gelesen werden. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.READ (FName : TFeldStr) : STRING;
{ ---------------------------------------------------------------- }
{ H.ngt einen leeren (!) Datensatz an die Datenbank an, wobei der }
{ Datensatz-Zeiger auf den neuen (und damit letzten) Satz gesetzt }
{ wird. Dieser kann dann mittels "Replace" beschrieben werden. }
{ Sollte die Operation aus irgendeinem Grund nicht durchgef.hrt }
{ werden k.nnen, so wird False zur.ckgegeben und der Fehlerstatus }
{ via Unit "Error" gesetzt, sonst kommt True zur.ck. }
{ ---------------------------------------------------------------- }
FUNCTION TDataBase.APPEND : BOOLEAN;
{ ---------------------------------------------------------------- }
{ Ersetzt im aktuellen Datensatz das Feld mit dem angegebenen }
{ Namen durch den neuen (.bergegebenen) Inhalt. Dieser ist - unab- }
{ h.ngig vom tats.chlichen Typ des Feldes - immer ein String, }
{ wobei auch nur eine sehr oberfl.chliche Plausiblit.tspr.fung (zu }
{ lang / kurz) durchgef.hrt wird (die .brigens im Fehlerfall }
{ wieder in Error den Fehlerstatus setzt und statt dem normalen }
{ True False zur.ckgibt). }
{ ---------------------------------------------------------------- }
{ Aufgrund der genannten Restriktionen sollte auf diese Routine im }
{ Allgemeinen zu Gunsten der spezialisierten Methoden "ReplaceL", }
{ "ReplaceR", "ReplaceD" und "ReplaceB" verzichtet werden. }
{ ---------------------------------------------------------------- }
{ Bei Memofeldern ist hier nur der _Index_ des Memoeintrages in }
{ der Memodatei einzutragen, wie er ja durch ein Read erhalten }
{ wird oder beim Anlegen eines neuen Textes von MemoAppend zur.ck- }
{ gegeben wird. }
{ ---------------------------------------------------------------- }
{ Sollte mittels "IndexOn" ein Index auf dieses Feld gelegt worden }
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson