[Allegro] Update mit Avanti

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Jan 11 11:14:47 CET 2012


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.

Abzufangen nur durch Setzung der zweiten Ziffer im voangehenden 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.

Wenn es sich um einen Fehler in der Numerierung handelt, werden Sie ja
nicht wollen, daß der Satz stillschweigend einen der mehreren
vorhandenen ersetzt?

Sein kann es natürlich in so einem Fall auch, daß die falsche Nummer
existiert, nur einmal vorkommt und zu einem anderen Satz gehört - dann
wird der überschrieben, und das läßt sich natürlich nicht verhindern.

Fazit: Fehler in der Numerierung sind tunlichst im Vorfeld zu verhüten.

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
Speicerung 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.

Nicht einstellen können Sie allerdings (zugegeben, hier mögen andere
Systeme es besser können), daß das Programm von sich aus die falsche
Nummer als falsch erkennt und die richtige herausfindet.

B.E.




Mehr Informationen über die Mailingliste Allegro