[Allegro] if main bei geladenem Benutzersatz 'fliegt'
Bernhard Eversberg
ev at biblio.tu-bs.de
Mi Mär 14 07:49:30 CET 2007
Anando Eger schrieb:
>
> wenn ich in der demo2-Datenbank einen Benutzer (z.B. Monika Lewinski)
> in die Anzeige hole und dann im Schreibfeld
>
> x if main mes Hauptsatz
>
> eingebe, verabschiedet sich a99 reproduzierbar mit einem Anwendungsfehler.
>
> (aktuelles a99, Windows2000 Pro SP4)
>
Das kommt davon, wenn ein Satz keine richtige #00 hat sondern dort nur -
steht. Damit hat er keinen ordentlichen Primärschlüssel, der aber
wichtig ist, um die Bedingung "main" zu verifizieren. Eine unerwünschte
Nebenwirkung eines Tricks also.
Abhilfe: in den Indexparametern dafür sorgen, daß der Satz einen
ordentlichen Primärschlüssel bekommt, was in diesem Fall nur die
Lesernummer in #9B sein kann. Dazu genügt eine winzige Ergänzung in
cat.api, Zeile 514:
!00 e"[=▼-]" b0 F32 p"|9" SWD: e"-" wg. Pruefziff
Das b0 sorgt dafür daß die Zeile abgebrochen wird, wenn zu dem Zeitpunkt
der Arbeitstext leer ist. Und dann entsteht die Lesernummer als
Primärschlüssel...
Wir werden uns aber drum kümmern, denn die Situation kann ja auch bei
defizitären Sätzen auftreten, die man unbeabsichtigt erzeugt hat, etwa
als Ergebnis eines Imports. Dann wird "if main" in jedem Fall ein
negatives Resultat haben, wie es sein sollte.
MfG B.E.
Mehr Informationen über die Mailingliste Allegro