[Allegro] V32.4 und Indexparameteraufruf

Thomas Berger ThB at Gymel.com
Mo Jul 9 17:41:43 CEST 2012


Hallo Herr Fischer,

> Bei einem ersten Test mit -eparam/datei im Aufruf von update bekomme ich in datei Einträge der Art:
> 
> === neuer Satz ===
> #002 117712310  #002A00172332zZKA       #004 20120418/19:34:47  #004N199701241a #004Z20120418/19:34:47  #005 p  #007Z201204071a #800 Herrmann, Aloys    #805 Mathematiker       #806gm  #806nXA-DE      #808 1930w      #870 Köthen (Wirkungsort)       #
> === vorhandener Satz ===
> #002 117712310  #003 pg11771231 #004 20090427/16:32:33  #005 prd        #007 20090720/16:05:37 hsd      #026 dm #800 Herrmann, Aloys    #805 Mathematiker       #806gm  #806oXA-DE      #807 Köthen     #808 1930w      #809 1935w      #
> 
> Das ist zwar auch instruktiv, aber nicht das was ich brauche: Ich möchte die
> *nicht gefundenen* Datensätze in einer Datei sammeln und mit einem neuen
> Primärschlüssel mit meiner Datenbank vergleichen.

die "nicht gefundenen" waeren ja Neusaetze und wuerden als solche Protokolliert.
Dann sind Sie natuerlich schon in der Datenbank drin, wenn Sie "datei"
auswerten...

Moeglicherweise suchen Sie die Funktionalitaet von "update -fc" ?


> Gibt es diese Möglichkeit nicht bzw. muss ich die selber an der Stelle in
> update.job einprogrammieren, wo der Primärschlüsselvergleich erfolglos blieb
> (siehe auch meine obige Frage)?

fuer "und mit einem neuen Primaerschluessel ... vergleichen" hoert sich
nicht wie eine Standard-Funktionalitaet von Update an:

Angenommen, Saetze bilden "mehrere Primaerschluessel" (die Eigenschaft
"Primaerschluessel" ist dabei nicht in der Datenbank hinterlegt), dann
wirken alle Primaerschluessel der bereits in der Datenbank vorliegenden
Schluessel bei folgendem Vergleich, der fuer jeden Update-Satz durch-
gefuehrt wird: "Kann ich den /ersten/ gebildeten Schluessel dieses
Datensatzes in der Datenbank bereits finden?"


> In update.job ist mir nicht klar was man mit drei Indexparameterdateien macht:
> // * -i     Name der Indexparameter, falls neue Datenbank zu erzeugen ist
> // * -I     Abweichende Indexparameterdatei
> // * -y     Indexparameter (falls nicht default aus -b)
> (-y wird allerdings ignoriert). Kann das zusammengefasst werden?

1. -i ist ein Schalter von update.exe, den acon nicht nutzen kann.
2. -I und -y sind Schalter von update.exe, die von acon selbst
   unterstuetzt werden muessten (Auswertung im Job waere definitiv
   zu spaet). Weil ich solche Konstruktionen nie selbst angewendet
   habe, weiss ich nicht, ob acon da mitmacht.


> Ein einzelnes ASCII 01 in der letzten Zeile wird übrigens mit
> "Fehler bei der Bearbeitung von #005p.hlg. Datei endet abrupt"
> quittiert, das macht aber wohl nichts.

Nun, die Fehlermeldung ist angebracht und sogar zutreffend formuliert,
ob das "nichts macht" muss der Anwender entscheiden, denn bei einer
abgeschnittenen Datei kann die Maschine hoechstens Raten ob es ein
Fall von "zuviel" (Schmutz hinter dem letzten Datensatz) oder "zuwenig"
(500.000 Saetze sind einem Plattenschaden zum Opfer gefallen) ist.

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro