[Allegro] Avanti: Meldung Satz xxx gespeichert

Bernhard Eversberg ev at biblio.tu-bs.de
Do Sep 1 08:33:34 CEST 2005


Roland Henkel schrieb:
> 
> Kann jemand von Ihnen nachvollziehen, dass in der obigen Meldung (nach 
> speichern eines neuen Satzes)
> die Satznummer 0 angegeben wird, sofern die Datenbankgrösse eine 
> bestimmte Anzahl von Sätzen überschreitet?
Es gibt keine internen Gründe, warum das so sein sollte. Es gibt vor
allem keine bestimmte Anzahl von Sätzen, von der an irgendein Problem
auftritt. Die größte Datenbank hat 15 Mio Sätze und läßt noch immer ein
problemloses Speichern zu. Es muß andere Gründe geben.

>  Oder gibt es sonst eine Möglichkeit, die
> Nummer des zuletzt gespeicherten (neuen) Satzes zu ermitteln - 
> möglichst, ohne
> Avanti dafür noch einal extra zu bemühen?
> 
Ohne avanti nochmal zu bemühen? Woher sollte denn dann die Nummer
kommen? Der zuletzt gespeicherte Satz hat nicht unbedingt die höchste
Satznummer: Wenn ein Leersatz mit passender Länge gefunden wird, erbt
der neue Satz dessen interne Nummer. Mit dem FLEX-Befehl "var t" kommt
man deshalb nicht zum Ziel. Man muß schon die Form seiner
Primärschlüssel kennen, um den zuletzt vergebenen mit einem geeigneten
Befehl zu finden. Es ist also nicht leicht. Dieser Wunsch wurde hiermit
erstmals geäußert, daher darf man sich nicht wundern, daß wir dafür
noch keinen bequemen Befehl geschaffen haben - allerdings wüßte ich
auch gar nicht, wie der aussehen und funktionieren könnte!
Hinweise zur Lösung:
Wenn man z.B. weiß, daß der letzte Eintrag im Register 9 der neuen
IdNummern so aussehen muß:   DBn   mit irgendeiner Zahl n,
dann koennte man diese Befehle geben:
qrix n 1
qrix f 1
qrix |9 DBA

Dann erhält man eine Zeile, die bei der DemoBank so aussieht:
1       DB969221142     832
Vor der 832 steht ein Code 09 (TAB), damit kann man die interne
Satznummer 839 dann isolieren.

qrix  funktioniert leider bei avanti nicht in genau derselben Weise wie 
bei a99! Da muesste man schreiben
qrix -2 |9 DBA\var (e"~" b":")    // ~ soll das Absatzendezeichen sein
dann hätte man in der iV die Nummer 832

(Die angegebenen Befehle wurden mit der DemoBank getestet)

-- 
Bernhard Eversberg
UB Braunschweig
Tel. 0531 391 5026
E-Mail: b.eversberg at tu-bs.de



Mehr Informationen über die Mailingliste Allegro