L"oschung von cat_n.ald gel"oschter S"atze

Thomas Berger ThB at gymel.com
Mo Sep 29 21:56:00 CEST 2003


Lieber Herr Allers,

> 1.
> Eine Datenbank setze sich aus cat_1.ald, cat_2.ald, cat_3.ald, ... zusammen.

statthaft.
 
> 2.
> Sämtliche Datensätze in cat_2.ald werden gelöscht.

statthaft.

 
> 3.
> Die Datei cat_2.ald wird gelöscht.

Bedenken Sie, dass im Index noch Loeschschluessel auf die
geloeschten Datensaetze verweisen und in der .TBL deren 
Position in der nicht mehr existierenden cat_2.ald vermerkt
ist.

Sie muessten nun eigentlich "entlueften", wobei es anders 
als sonst nicht wirklich darauf ankommt, ungenutzten Platz
in cat_2.ald zurueckzugeben, sondern die Satznummern als
nicht mehr zu benutzen zu kennzeichnen. Sie koennen gezielt
eine einzelne .ald-Datei entlueften (hier cat_2):

%-P%\index -fr -n0 -d*%-D%\cat_2 -e%-b%/%-D%

Wenn 2. wirklich wahr war, muessten Sie danach eine
0 Byte grosse Datei cat_2.ald uebrigbehalten.

 
> 4.
> Eine neue Datei cat_2.ald wird ins Datenbankverzeichnis hineingestellt und
> mit
> 
> set -d=...
> index -f71 - at 1 -n0 -m0 -dcat_2 -ecat/%-d% -h0
> index -fi1 - at 2 -n0 -m0 -dcat_2 -ecat/%-d% -h0
> 
> in die bestehende Datenbank hinzu- bzw. hineinindexiert.

klarerweise (-f7*1*) wird hier zur Datenbank ergaenzt,
d.h. die bei 3. diskutierten zurueckgebliebenen Schluessel
von Leersaetzen aus cat_2.ald werden nicht bereinigt.
Eine Aenderung an einem Datensatz in der neuen cat_2.ald,
die zum Umspeichern fuehrt, wuerde also fast zwangslaeufig
den Satz an eine willkuerliche Stelle der cat_2.ald 
zurueckspeichern, ausser Sie arbeiten absolut konsequent
mit -N0, d.h. Leersatznutzung wird verhindert.

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro