F: CAT.API-Problem bei zweistufiger Indexrg. (- at 1+-@2)

Heinrich Allers allers at t-online.de
Mo Dez 2 07:45:00 CET 1996


Einen guten Morgen und Wochenanfang an alle!


                Beim Versuch, eine Datenbank von Version 12.2
(1993) auf V. 14 (1996) zu hieven, und dazu die Standard-CAT.API
(mit 41.490 Bytes, vom 6.9.1996) aus der Braunschweiger Lieferung
zu benutzen, staunte ich nicht schlecht, als ich es im (eigent=
lich Personen vorbehaltenen) Register 1 von Titelstichwörtern
wimmeln sah.

Wichtig ist dabei, daß dies dann der Fall war, wenn ich "uber das
CockPit (Routinen/organisieren ...) reorganisierte. Steuerte ich die
Neuindexierung der Datenbank direkt "uber den einmaligen Start des
Allegro-Programms INDEX, ohne die Optionen - at 1 und - at 2, die dem
zweistufigen (für Datenbanken echter V14-Struktur obligatorischen)
Indexierungsprozeß eigen sind, war alles in Ordnung (will heißen:
die Titelstichwörter blieben brav in Register 3 und verirrten sich
nicht in Register 1).

(Das CockPit macht einen zweistufigen Indexierungsprozeß, mit - at 1
und - at 2, weil es wegen der Parameterangaben f"ur i4, i5 und i6 in
der Indexparameterdatei eine Datenbankstruktur wittert, die eine
ad"aquate - V14-gem"a"se - Reorganisationsprozedur verlangt).

###

Im Rahmen der Untersuchung und Eingrenzung des Problems bin ich
an folgendem Punkt gelangt:

Die aus einem einzigen Datensatz mit einer einzigen Kategorie

#20 aaaa bbbb cccc

bestehende Datenbank wird indexiert mit folgender Indexparameter=
datei CAX.API (Reduktion von CAT.API auf den wesentlichen Kern des
Geschehens):

zl=0
zm=0
ad=0
ag=0
i4=1
i5=_
i6=9
il=220
ic=1
i0=72
|1="1 : Namen von Personen"
|3="3 : Wörter (Titel- und Schlagwörter)"
ak=zz+@
ak=20" "+E
#-E
#uty
!u1
#+#
#-@
#nr dty p"|3" e2 aty e0
#+#
ti


Die Untersuchung erfolgt nat"urlich - ich kann 's nicht lassen,
Werbung f"ur diese Methode zu machen :-)  - mit Testschleifen-
Stapeldatei:

@echo off
:anfang
set -p=
set -d=
rem Aufruf von Festplattenverwaltungssystem:
xx
pause
set -d=c:\allegro\katalog
set -p=c:\allegro
%-p%\index -f70 - at 1 -n0 -m0 -kA -d*%-d%\cax -ecax/%-d% -lGER
cls
echo Anschauen der Datenbank nach 1. Indexierungsschritt - at 1:
pause
%-p%\presto -a3 -d%-d%\cax -n1 -pd-1 -S
%-p%\index -fi1 - at 2 -n0 -m0 -kA -d*%-d%\cax -ecax/%-d% -lGER
cls
echo Anschauen der Datenbank nach 2. Indexierungsschritt - at 2:
pause
%-p%\presto -a3 -d%-d%\cax -n1 -pd-1 -S
%-p%\index -d%-d%\cax -f70 -s0 -v0 -m0 -ecax/%-d% -n1 -h0
cls
echo Anschauen der Datenbank nach Indexierung alter (Pr"a-14-) Art:
pause
%-p%\presto -a3 -d%-d%\cax -n1 -pd-1 -S
goto anfang

###

Das Ergebnis nach dem 1. Indexierungsschritt (mit - at 1):

Register 1 hat keinen Eintrag.
Register 3 hat den Eintrag 'aaaa'.
- Zwangsl"aufig unvollst"andig. 

Das Ergebnis nach dem 2. Indexierungsschritt (mit - at 2):

Register 1 hat die Eintr"age 'aaaa', 'bbbb' und 'cccc'.
Register 3 hat den Eintrag 'aaaa'.
- Falsch!

Das Ergebnis nach Indexierung alter (Pr"a-14-) Art:

Register 1 hat keinen Eintrag.
Register 3 hat die Eintr"age 'aaaa', 'bbbb' und 'cccc'.
- Wie es sich geh"ort!

###

Also, entweder liege ich v"ollig falsch, oder Allegro verheddert
sich hier bei der Reorganisation der recht originellen Verwendung
der Anwendervariablen #uty wegen, die als das das Register
bestimmende Pr"afix eingesetzt und offensichtlich beim zweiten
Indexierungsdurchlauf (mit - at 2) gar nicht mehr besetzt wird und damit
nicht mehr zum Zuge kommt und die Stichw"orter in Register 1 landen
l"a"st.

Aber wenn dem so w"are, wie ich das hier unterstelle: da h"atte doch
vorher schon jemand anders dr"uber stolpern m"ussen!???


... fragt sich, und
gr"u"st zugleich:

Heinrich Allers

Goethe-Institut, M"unchen
heinrich.allers at goethe.de






Mehr Informationen über die Mailingliste Allegro