Kontextabh"angiges Verhalten von 'erase'
Heinrich Allers
allers at t-online.de
Mo Okt 28 21:13:59 CET 2002
Ich habe mit einem seltsamen Betragen von 'erase', dem Flexbefehl für das Löschen eines
Datensatzes, zu kämpfen; ich habe es auf folgende auf der Demo-Datenbank
reproduzierbareSituation reduziert:
Die 5 im Personenregister unter 'bach ...'stehenden Titel möchte ich löschen und benutze dazu
die folgende Flexdatei:
find per bach?
first
:naechst
erase
next\if no jump ende
jump naechst
:ende
Diese Flexdatei läuft problemlos: erstens gibt es keine Rückfrage, ob gelöscht werden soll,
zweitens sind hinterher wirklich alle 5 Datensätze verschwunden.
Das Problem beginnt, wenn ich vor Löschung (vor dem erase-Befehl) an dem zu löschenden
Datensatz noch Manipulationen vornehme. Die folgende Flexdatei:
find per bach?
first
:naechst
var ""\ins #20
erase
next\if no jump ende
jump naechst
:ende
erase off
macht nicht mehr das, was man sich von ihr wünscht: erstens fragt sie bei jedem Datensatz, ob
er wirklich gelöscht werden soll (so, als stünde dort 'Erase'), und zweitens sind hinterher von
den 5 Titel nur 4 verschwunden, einer bleibt stehen.
###
Warum ist das so? Worauf muß ich achten, wenn ich rückfragelos, nach Manipulationen an dem
zu löschenden Titel und komplett löschen will?
(Vielleicht fragt jetzt jemand, warum ich Datensätze manipulieren will, die ich unmittelbar
darauf lösche? Weil ich den Löschbefehl in meiner echten Anwendung davon abhängig mache,
was nach der Manipulation von dem betreffenden Titel noch übrig ist - um es mal verkürzt
auszudrücken).
Mit besten Grüßen:
Heinrich Allers
allers at t-online.de, http://home.t-online.de/home/allers
Die Welt hat sich am 11.9.2001 nicht verändert, sondern
uns ist einmal mehr gezeigt worden, daß sie verändert
werden muß / El mundo no ha cambiado el 11.9.2001, sino
nos fue demostrado una vez más que tiene que ser
cambiado
Mehr Informationen über die Mailingliste Allegro