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