AW: [Allegro] Update mit Avanti
Fischer, Thomas
fischer at sub.uni-goettingen.de
Mi Jan 11 11:41:59 CET 2012
Hallo Herr Eversberg!
> Am 11.01.2012 10:42, schrieb Fischer, Thomas:
> >
> > ich führe für einige Datenbanken Updates mit Avanti durch: per
> >
> > update updateFile.txt
> >
> > wird eine Datei in die Datenbank eingespeist.
> > Bei Fehlern in der Nummerierung bekomme ich dann die Meldung:
> >
> > U: Pr.Key not unique: |:001162
> > Satz #00 001162 gespeichert (#14466)
> >
> > das heißt, bei fehlender Identifikation wird der Datensatz
> trotzdem der Datenbank hinzugefügt, als zusätzlicher Satz.
> > Soll das so sein, und kann ich das gegebenenfalls ändern?
> >
> "Fehlende Identifikation"? Die Meldung "not unique" bedeutet "nicht
> eindeutig", also nicht das Fehlen, sondern die Mehrfachvorhandenheit
> der Identifikation.
"Fehlende Identifikation" sollte hier heißen: es konnte kein eindeutiges Ziel festgestellt werden, weil die Nummer (warum auch immer) fehlerhafterweise mehrfach vorhanden war.
> Abzufangen nur durch Setzung der zweiten Ziffer im vorangehenden Befehl
> set uxy auf 0, also z.B. set u40, dann werden solche Fälle
> ignoriert.
> Aber auch eben echte Neusätze, die hineinsollen! Anwendbar also nur,
> wenn es keine echten Neusätze gibt.
Genau, und darum hilft mir das hier nicht weiter.
> Wenn es sich um einen Fehler in der Numerierung handelt, werden Sie ja
> nicht wollen, daß der Satz stillschweigend einen der mehreren
> vorhandenen ersetzt?
Nein, ich wollte verhindern, dass er überhaupt hinzugeschrieben wird -- als ich eben nachgesehen habe, gab es mittlerweile 9 davon.
> Fazit: Fehler in der Numerierung sind tunlichst im Vorfeld zu
> verhüten.
Da haben Sie sicher recht.
Aber ist es denn wirklich bei den anderen Anwendern oder Anwendungen gewünscht, in der von mir beschriebenen Situation den Datensatz als Neusatz zu ergänzen?
> Mit dem neuen update.job werden Sie viel mehr Kontrolle über das
> Geschehen haben. Der Fall, daß es zu einer IdNummer schon
> mehr als einen Eintrag gibt, kann darin auch anders behandelt
> werden als durch Speicherung als Neusatz. Jedenfalls gibt es eine
> treffende Meldung, aus der Sie den Sachverhalt dann hinterher
> entnehmen können. In dem Job steht für diesen Fall:
>
> if g1 ...
>
> und dann Befehle die eine Speicherung als Neusatz bewirken,
> die Sie aber
> ändern können, anders als beim eingebauten "update"-Befehl.
Das kommt mir für mein Server-basiertes System etwas zu kompliziert vor.
Geht das überhaupt, mit avanti acon aufzufordern, (mehr oder weniger) vordefinierte Jobs abzuarbeiten, oder müsste ich die Jobs dann in meine Perlskripte einpacken?
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro