Spinnt update (classico)?
Heinrich Allers
allers at t-online.de
Mo Okt 18 22:51:33 CEST 1999
Liebe Benutzer von "update classico":
ich will unter einer Konfiguration t3,k6 (MAB-Daten)
folgende Datensätze per "update" in eine Datenbank einmischen,
in der der Primärschlüssel entweder durch #001 oder durch eine
wohldefinierte Kombination von #010 und #090 bestimmt ist:
#001 2060000013
#...
#010 2060000049
#090 00100
#...
#010 2060000056
#090 00300
#...
#001 2060000073
#...
#001 2060000091
#...
Ich setze "update" mit der Mischoption '-fm31' ein.
Die Sache funktioniert nicht!
Kommen die einzumischenden Datensätze in der hier gegebenen
Folge, so wird nur der erste und der letzte tatsächlich
eingemischt - und dies, obwohl das update-Protokoll UPRO
meldet:
5 records merged
0 records ignored
Das den update-Prozeß direkt begleitende Bildschirm-Protokoll
sagt allerdings z.B. beim zweiten der Datensätze:
Primärchlüsel: >2060000049+00100<
vorhanden: >2060000049+00100< : Satz 116 wird ersetzt
C:GOE_1.DLD nicht zugaenglichC:GOE_1.DLD nicht zugaenglich
Satz 2, 6 Schlüssel geändert
und läßt damit bereits Verdacht schöpfen, daß nicht alles so
klappt, wie es laufen sollte. Beim Nachsehen bestätigt sich,
daß dieser Satz weder in die Zieldatenbank eingemischt noch in
sie als neuer Datensatz hineingeschrieben wurde.
Hier der Vervollständigung der Beschreibung wegen noch die
Primärschlüsselbildungsvorschrift aus der Indexparameterdatei:
...
...
#-@
#9DF +#99Y e0 0 #zz 0
#001 +#99X "|6"
#010 "|6" #zz 0
#090 "+" #zz 0
#99X
#+#
#99Y
...
...
Es sei auch noch bemerkt, daß es in der Zieldatenbank
Datensätze mit Primärschlüsseln gibt, die identisch mit denen
des einzumischenden Materials sind. (Und selbst wenn es sie
nicht gäbe, würde das am Problem ja nichts ändern, da die
einzumischenden Sätze als _neue_ Sätze in die Datenbank gehen
müßten, was ja ebenfalls nicht geschieht).
###
Mir gelang es, ein System in diesem spinnerten Verhalten von
update zu finden:
Jeder Satz, dessen spoäterer Primärschlüssel sich aus #010 und
#090 zusammensetzt, produziert diese seltsame (doppelte)
Meldung "C:GOE_1.DLD nicht zugaenglich" und wird trotz
gegenteiliger Aussage der Protokolle des update-Prozesses
_nicht_ eingemischt.
Das gleiche Schicksal ereilt auch den unmittelbar auf einen
solchen Satz des Typs #010/#090 folgenden Satz des Typs #001;
der #010/#090-Satz zieht sozusagen den ihm unmittelbar
folgenden #001-Satz mit ins Verderben.
Alle übrigen Sätze mit #001 werden regelgerecht eingemischt.
###
Was ist los mit update? Oder was mache ich falsch? Kann mir da
jemand einen Hinweis geben?
###
So, jetzt bin ich rechtzeitig vor Ende des Tages einen Teil
der Verzweiflung losgeworden, die mich während dessen zweiter
Hälfte aufgehalten hat.
Mit besten Grüßen:
Heinrich Allers
Goethe-Institut, München
allers at goethe.de
allers at t-online.de
http://home.t-online.de/home/allers
Mehr Informationen über die Mailingliste Allegro