Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#19

Re: Records löschen

  Alt 26. Mai 2004, 17:50
Zitat von DJ-SPM:
Kann mir da keiner Helfen??
Du brauchst einen kleinen Grundkurs.
Also, wenn du eine Datei hast, kannst du nicht einfach aus der Mitte oder Anfang ein Stück
herausschneiden, ohne dass du einen relativ grossen (Kopier-)Aufwand hast.
Deshalb wird bei einer "richtigen" Datenbank ein Flag verwendet, das angibt, ob der Datensatz
gültig oder gelöscht ist. Beim DBase-Format ist dies z.B. das 1. Zeichen eines Record (' '=OK, '*'=Gelöscht).
Mit der Zeit enthält deine Datei immer mehr Löcher mit gelöschten Datensätzen.
Dann ist es an der Zeit die Datei zu komprimieren. Dazu braucht die Komprimierfunktion
nur die Satzlänge zu kennen.

Luckie gab den Vorschlag: "... und kopiere den letzten Datensatz an die Stelle des zu löschenden Datensatzes und fertig". (Zusätzlich muss man die Datei noch mit Truncate um einen Satz kürzen)
Dies ist relativ effektiv, allerdings wird die Reihenfolge der Datensätze geändert.
Andreas
  Mit Zitat antworten Zitat