AW: [Allegro] Probleme mit A99 V. 29.4

Thomas Fischer fischer at sub.uni-goettingen.de
Mo Mai 11 15:20:56 CEST 2009


Hallo Herr Eversberg,

es gibt offenbar zwei verschiedene Probleme, die sich auf ähnliche Weise
manifestieren.

1. Allem Anschein nach konnten früher Registereinträge in der HANS-Datenbank
auch mit Berechtigungsstufe 2 gelöscht werden, das geht jetzt nicht. Mit
Stufe 5 geht es.

2. Bei einigen meiner Datenbanken lassen sich einzelne Registereinträge
unabhängig von der Berechtigungsstufe nicht löschen, ich wüsste gern warum.
In unserer Forst-Datenbank haben wir z.B. einen Registerabschnitt (hier als
Export des Registerabschnitts, im Original ist "ä" korrekt):

   1  Referenzliste Formal Key
   1  Referenzliste L„ndercode
   1  Referenzliste Sprachcode 

Wenn ich den Eintrag zu Sprachcode zu löschen versuche (mit ENTF), so kommt
eine Anfrage:

---------------------------
Löschen:
---------------------------
1:Referenzliste Sprachcode, rec# 837
---------------------------
Ja   Nein   Abbrechen   
-------------------------–

Versuche ich dasselbe mit "Referenzliste Ländercode", so passiert gar
nichts, ansonsten funktioniert der Registereintrag normal.
Das scheint an dem Umlaut zu liegen, da wird wohl irgend etwas falsch
umgesetzt.
Was könnte das sein, und wo müsste ich eingreifen?

Kurz noch zum Löschen von Fehleinträgen (wo immer sie auch herkommen mögen):


> > das Programm ermittelt und merkt sich die Registerschlüssel,  
> > die sich laut Indexparameterdatei _vor_ der Bearbeitung ergeben. 
> > _Nach_ der Bearbeitung tut es das Gleiche und vergleicht die 
> > festgestellten Registerschlüssel mit denen von vor der 
> > Bearbeitung und wird nur dann tätig...
 
> Genauso ist das, und zwar "vorher" - "nachher" aufgrund der 
> aktuellen Indexparameter. Denn die älteren kennt das Programm 
> zu dem Zeitpunkt nicht mehr.

Das habe ich auch immer so gedacht. Wie dann derselbe Eintrag für einen
Datensatz mehrfach auftreten kann, bleibt mir schleierhaft, das müsste mit
Herrn Berger geklärt werden.
Ich vermute, dass die "Registermaskerade" da hinein spielt.
Die fehlerhaften Registereinträge in unserer HANS-Datenbank lassen sich
übrigens mit der Methode
"Registerabschnit als Liste ausgeben..."
weder als Ergebnismenge noch als Liste anzeigen.

>  "Nun", denkt da so manche(r), 
> "da sucht halt das Progrämmle im Index all die Zeilen von dem 
> Satz und zeigt einem die! Es filtert also quasi den Index und 
> zeigt nur die Einträge mit der Nummer des aktuellen Satzes!"
 
> Ja, so _KÖNNTE_ es das machen, das Progrämmle. Aber wie lange 
> würde das wohl dauern, wenn der Index zig Millionen Einträge 
> hätte? Das könnte auch der schnellste Rechner nicht in 
> Sekundenbruchteilen schaffen [...]

Ja, das würde dauern. Trotzdem wäre das ein interessanter Notbehelf, um die
Indexeinträge des *einen* Datensatzes neu zu erzeugen, wenn irgendetwas
schief gelaufen ist oder die Indexparamterdatei verändert wurde. Wäre das
machbar?

> M.a.W., das Programm _kann_ gar nicht wissen, welche 
> unnötigen (d.h. zu den aktuellen Parametern nicht mehr 
> passenden) Einträge in den Registern noch schlummern. 

Weil das so ist, ist das Löschen einzelner Einträge manchmal ein hilfreicher
Notbehelf.

> Wenn 
> die Indexparameter geändert wurden, muß man neu indexieren, 
> anders wird man diese Einträge nicht los, dann aber 
> dauerhaft. Wenn nicht, haben die Parameter einen Fehler, 
> nicht das Programm.

Das sehe ich auch so. Die Indexerneuerung ist aber im Einzelfall keine
mögliche Option, erstens wegen der nötigen Berechtigungsstufe und zweitens
wegen Mehrfachnutzung. Vom Zeitaufwand gar nicht zu reden...

Mit freundlichen Grüßen
Thomas Fischer 





Mehr Informationen über die Mailingliste Allegro