[Allegro] Update-Dokumentation

Thomas Berger ThB at Gymel.com
Mo Aug 5 17:52:10 CEST 2013


Hallo Herr Fischer,

> Eine kurze Beschreibung des Aufrufs mit einer Erläuterung der möglichen
> Parameter wäre ein guter Start.
> Ich habe versucht, das aus dem Onlinehandbuch (h ac9) zu ziehen, bin mir
> aber
> nicht sicher, was davon noch gilt, da das fast alles noch auf das Cockpit
> ausgerichtet ist.
> Vermutlich könnte eine aktuelle Beschreibung aber darauf aufsetzen.

update.job fuer acon gibt es in zwei Versionen, eine direkt von mir,
wie sie etwa mit allegro-HANS ausgeliefert wird
( http://svn.gymel.com/acxt/produkt/aconjobdir/ >
und eine nochmals von Herrn Eversberg ueberarbeitete, die in inst-all.exe
enthalten ist. Ich kann da nur fuer erstere Version sprechen:

Das Ziel der Entwicklung war eine getreue Nachbildung der Funktionen
des 16bit-UPDATE.EXE

Neu allerdings ist die Moeglichkeit, das Programm mit dem Schalter --help
aufzurufen.

> Ich möchte in etwa das folgende:
> 1. Dem Programm mitteilen,
>         - welche Datei(en) importiert werden sollen und

Schalter -u, da hat sich nichts geaendert

>             in welchem Format (bei mir: Externformat) sie vorliegen, und

UPDATE.EXE sah nur das Internformat vor. [/Das/ Externformat gibt es
leider nicht, "klar" sind eigentlich nur die Zeilenumbrueche und die
"#" vor den Kategorienummern. Bereits die Zeichencodierung ist nicht
mehr klar definiert]

update.job versucht anhand der Extension zu bestimmen, ob es sich
um .cDT, .cLD, .LOG oder .cLG-Dateien handelt.


>         - wohin sie importiert werden sollen, welche Indexparameterdatei
>             und insbesondere welcher Primärschlüssel dabei zu benutzen ist.

Schalter -y (Name - oder Pfad??? der Indexparameter) ist derzeit nicht
implementiert, "welcher Primaerschluessel" war keine Funktionalitaet
von UPDATE.EXE. [Ich persoenlich implementiere lieber eine "Weiche"
im Primaerabschnitt der .cPI, die ueber eine Anwendervariable, die in
Update oder Index mit -U uebergeben werden kann, gesteuert wird]


> 2. Dann festlegen, was passieren soll, wenn ein Datensatz mit demselben
> Primärschlüssel schon vorliegt (aktuell: fm21). Oder geht so etwas wie fm210,
> und wenn ja, mit welchem Effekt?

Es sind die Modi -fmxy von UPDATE.EXE implementiert. Die dritte Ziffer
waere a99-spezifisch, sie besagt, dass die Saetze im Offline-Speicher
verbleiben sollen nun nicht entgueltig zu speichern sind, das geht
mit acon nicht.


> 3. Ich möchte auf keinen Fall, dass ein Satz importiert wird, wenn der
> Primärschlüssel schon *mehrfach* vorhanden ist.

Sehr verstaendlich. Leider genau entgegen dem Verhalten von UPDATE.EXE.

update.job gibt einen Exitcode von 2 zurueck, wenn diese Situation
auftrat. Und es wird eine Warnung
if g1 write "[WARN] Mehr als ein Treffer (" l "), verarbeite den ersten" n
ausgegeben. Aus kompatibilitaetsgruenden wird der Satz allerdings verarbeitet.


> 4. Ich möchte die zurückgewiesenen Sätze in einer Datei sammeln, um sie
> später eventuell nachzubehandeln und/oder partiell zu importieren (das ist mein
> primärer Grund, es nicht mit A99 zu versuchen).

so eine Aufteilung sollte man m.E. vor dem Update mit einem vorgelagerten
Export vornehmen.


> 5. Etwaige Fehler (z.B. mehrfach auftretende Primärschlüssel) möchte ich
> angezeigt und wenn möglich irgendwo hingeschrieben bekommen (geht mit A99 wohl
> auch nicht).

Das Verhalten von upro bzw. der mit -x zuschaltbaren Protokolldatei liess
sich fuer acon nicht ganz exakt nachbilden, es lohnt sich daher, das mit
acon einmal auszuprobieren.


> 6. Die Daten in der Datenbank und in den zu importierenden Dateien liegen
> alle in UTF-8 vor, an der Zeichenkodierung darf also nicht gedreht werden.

tut update.exe auch nicht.


> 7. Das Ganze soll möglichst schnell auf meiner Einzelmaschine mit mir als einzigem Nutzer ablaufen.

Das waere der Schalter -F

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro