Universitätsbibliothek der Technischen Universität Braunschweig, Universitätsplatz 1, D-38106 Braunschweig, Tel. (0531)391-5011, - 5026, FAX -5836
Do problems ever go away
if only someone bothers?
They do,
it's true,
but only to...
be replaced by others.
Heinrich der Löwe, zu dessen 800. Todestag in Braunschweig derzeit eine große Mittelalterausstellung stattfindet, hatte wohl eine Vorstellung davon, welch hoher Arbeitsaufwand, wieviel Sachkenntnis und handwerkliches Geschick notwendig waren, ein vorzeigbares Buch anzufertigen. Das Evangeliar, das er um 1188 beim Mönch Herimann von Helmarshausen in Auftrag gab, war ihm nicht nur eine stolze Summe Geldes wert, es war auch ein Kultobjekt ersten Ranges. Daß es rund 800 Jahre später für DM 32 Mio. zurückgekauft werden sollte, konnte er nicht ahnen, doch es zeigt, daß die materielle Wertschätzung für solcherlei Objekte nicht verlorenging. Das Buch war damals jedoch ganz allgemein, ob Kultobjekt oder nicht, ein hoch geschätztes Gut, was auch in seiner Knappheit begründet lag. Das hat sich gründlich gewandelt: Bücher (oder Objekte, die so aussehen) gibt es im Überfluß, und wie jeder Überfluß scheint auch dieser zum Überdruß zu führen. Man will, wenigstens in der wissenschaftlichen Kommunikation, die Papierbindung überwinden, möglichst vieles soll online verfügbar werden. Der Überdruß wird allerdings gar nicht vom Papier verursacht, sondern von seiner Masse. Es wird zuviel veröffentlicht. Das elektronische Medium erleichtert indessen nicht nur den Umgang mit Dokumentenmassen, sondern auch zugleich ihre Vergrößerung; es verschiebt folglich das Kernproblem in neue Dimensionen, löst es aber nicht. Ein anderer alter Braunschweiger, Carl Friedrich Gauß, hatte den Wahlspruch "Pauca sed matura" - Weniges, aber Reifes. Man fand in seinen Schubladen viele Arbeiten, die veröffentlichungsreif aussahen, ihm aber noch nicht genügend ausgefeilt gewesen waren. Gauß fühlte offenbar eine Verantwortung, Kollegen nicht die Zeit zu stehlen mit Arbeiten, in die er selber noch nicht genügend Zeit zu ihrer Vervollkommnung investiert hatte. Zum Vorbild wurde diese Haltung aber nicht.
Für Heinrich den Löwen noch undenkbar, für Gauß noch entbehrlich, ist für uns Heutige die Datenbank für die Verwaltung vonDokumentbeständen zum notwendigen Arbeitsinstrument geworden, damit wir aus der Masse der uns anvertrauten Dokumente die vorzeigbaren oder ausgereiften noch herausfinden können - wozu freilich die Elektronik nur formale Unterstützung, nicht Entscheidungshilfe leisten kann. Gern hätten wir schon ein wirklich perfektes Instrument, das wie jedes gute Werkzeug nicht als solches unsere Zeit beansprucht, sondern uns möglichst viel Zeit freimacht für unsere wahren Zwecke - welche das auch immer sind. Daß nun allegro - rein zufällig auch aus Braunschweig - bereits ein solches Werkzeug sei, behauptet niemand, auch nicht die Entwicklungsabteilung. Konturen angenommen hat aber nun doch, nach langem Nachdenken über neue Ansätze, ein Entwurf, der einerseits dem allegro-Konzept Kontinuität sichert, andererseits aber die Software auf eine ganz neue Grundlage stellt. Diese Grundlage soll für drei Ebenen neue Möglichkeiten eröffnen:
Damit kein Mißverständnis oder gar Gerücht aufkommt: der Name allegro bleibt bestehen, schon um deutlich zu machen, daß bei allem tiefgreifenden Wandel die Kontinuität und Kompatibilität nicht aus dem Auge gelassen wird. Mit avanti wurde bisher nur intern ein Projekt bezeichnet, jetzt soll dieser Name den gesamten Komplex der Neuerungen auf einen Begriff bringen. Der Name soll nicht andeuten, daß nun hastig auf den Windows-Zug aufgesprungen wird, oder daß es höchste Zeit wird, diesem nun endlich hinterherzulaufen. avanti heißt schlicht "vorwärts", d.h. es verbindet sich damit die Einschätzung, Schritte in die richtige Richtung zu tun. Was für Schritte das sind, und in welche Richtung, das sollen die nachfolgenden Seiten wenigstens umrißweise verdeutlichen.
Das Konzept avanti soll und kann darauf hinauslaufen, daß eine neue Produktlinie entsteht. Der sich jetzt herausbildende neue Kern wird die bewährten Komponenten als Bausatz (sog. "Klassenbibliothek") bereitstellen, der sich mit anderen Bausätzen (etwa für Oberflächengestaltungen) auf der Ebene C++ leicht und schnell kombinieren läßt. Der Kern ist in keiner Weise mehr auf eine bestimmte Plattform, weder DOS noch Windows, festgelegt. Die Entwicklungsabteilung kann natürlichnicht, aber muß dann auch nicht mehr, alles selber machen, denn es wird eine Lizenz für das Kernsystem geben, d.h. der Bausatz als solcher wird erhältlich sein und als Basis für eine Vielzahl von Fremdprodukten dienen können.
Im Systemhandbuch stand seit Version 9.7 (1989) diese Bemerkung:
"Benutzeroberflächen sind im übrigen besonders problematisch hinsichtlich der Portabilität. Für allegro wird angestrebt, daß es unter MS-DOS und UNIX lauffähig ist und bleibt. Dazu ist es notwendig, Oberfläche und Kern in den Programmen so zu trennen, daß nur relativ kleine Programmteile systemspezifisch zu schreiben sind. Längerfristig wird sich diese Bemühung auszahlen, zunächst geht es dadurch aber langsamer voran, als wenn man sich ausschließlich auf ein Betriebssystem konzentrieren würde." (aus: Nachwort zu Kap.0)
Dahinter steckte die Devise: "Die Zeit arbeitet für uns", und zwar indem der Markt zunehmend mächtige Tools hervorbringt, die Standardisierung vorangetrieben wird, und ganz allgemein die Vorstellungen von und Kenntnisse über Konzepte der Datenbankorganisation und der Benutzungsoberflächen heranreifen. Es scheint, die Zeit hat nun lange genug gearbeitet; die praktische Umsetzung der jetzt erkennbaren Möglichkeiten kann sie uns nicht auch noch abnehmen.
Damit (angehende) C-Programmierer unter den Anwendern sich einen Eindruck verschaffen können, was ein avanti-Programm sein wird, drucken wir hier in einiger Ausführlichkeit ein Musterprogramm ab. Dies soll helfen, die sehr abstrakten Ausführungen der Einleitung zu konkretisieren und einen Vorab-Einblick in die entstehende Programmierschnittstelle zu vermitteln.
Dieses Programm ist in der Sprache C++ geschrieben. Das Symbol // leitet Kommentare ein, d.h. der Rest der Zeile wird vom Compiler ignoriert.
Der "Bausatz" (die Klassenbibliothek) des Kernsystems enthält u.a. folgende Klassen (= Objektbeschreibungen):
Diese Klassen sind genauestens beschrieben in Dateien mit den Namen KONFIG.HPP, RECORD.HPP usw. Der Programmierer kann daraus alle Strukturen und Methoden ersehen, die in einem C++-Programm verwendet werden können. Diese Dateien dokumentieren also zugleich die "Programmierschnittstelle". Da diese Klassen keine interaktiven Teile enthalten (d.h. keine Tastatur- und Bildschirmprozeduren), sind sie mit beliebigen Klassenbibliotheken für GUI-Gestaltungen, aber z.B. auch für den Z39.50- Standard, für EDIFACT oder Client/Server-Anwendungen, kombinierbar. Das allegro-Datenbanksystem wird damit endlich auch auf Programmierebene zu einem absolut offenen System.
Es folgt auf den nächsten zwei Seiten ein kleines Musterprogramm, welches ein wenig verdeutlichen soll, wie die genannten Klassen eingesetzt werden. Das Programm macht folgendes:
Um die Lesbarkeit zu verbessern, sind Kommentare kursiv gedruckt, der eigentliche Programmtext fett.
// Musterprogramm TEST.CPP // Allgemeine Vorbereitungen: // Klassenbeschreibungen: // die Datei ABASE.HPP enthält alle Beschreibungen #include "abase.hpp" // Hier beginnt das Programm: int Amain() { if(!uifRead('0')) A_EXIT(10); // Lies die Datei UIF0GER if(!uifRead('1')) A_EXIT(10); // Lies die Datei UIF1GER // Zuerst wird A.CFG geladen, und zwar vom Verzeichnis C:\ALLEGRO\DEMO2 : // (eine Konfiguration wird immer gebraucht) KONFIG *kfg=new KONFIG("A","C:\\ALLEGRO\\DEMO2\\"); if(*Aerror) { printf("\n%s\n",Aerror); A_EXIT(10); } // Fehler in A.CFG? // Fehlermeldungen solcher Funktionen stehen immer in der Variablen Aerror // if(*Aerror) bedeutet: steht etwas in Aerror? Wenn ja, wird die // nachfolgende Klammer ausgeführt // A_EXIT(10) heisst: Programm wird mit Fehlercode 10 beendet // Im folgenden wird jeweils die Konfiguration kfg benutzt, um Objekte // zu erzeugen // Exportparameter D-SHOW.APR werden geladen in ein Objekt der Klasse EXET, // welches den Namen eee bekommt: EXET *eee=new EXET("D-SHOW",kfg,0, "C:\\ALLEGRO\\DEMO2\\"); if(*Aerror) { printf("Aerror=%s\n",Aerror); A_EXIT(10); } // zum Ausgeben soll die Funktion putchar() dienen, d.h. Ausgabe auf Bildschirm; // deshalb wird der Name dieser Funktion an das Objekt eee uebergeben: eee->Outfunc(putchar); // Ein Objekt RECORD (Datensatz) wird geschaffen, es beruht gleichfalls auf kfg: RECORD *satz=new RECORD(kfg); // Die Datenbank CAT auf C:\ALLEGRO\DEMO2 wird geoeffnet: // (d.h. ein Objekt der Klasse ABASE wird angelegt) ABASE *xyz=new ABASE("C:\\ALLEGRO\\DEMO2\\","CAT", kfg,1); if(*Aerror) { printf("IndexParamFehler: %s\n",Aerror); A_EXIT(10); } // wenn in Aerror was steht, hat es nicht geklappt! // Jetzt wird mit den erstellten Objekten einiges ausprobiert: // ein paar Variablen werden gebraucht: CHAR txt[256]; // soll den Text einer Registerzeile aufnehmen long results[1000]; // Ergebnismenge: bis zu 1000 Satznummern int rs; // Anzahl der Ergebnisse // Im Register 3 wird nach Eintraegen gesucht, die mit "biochem" anfangen: // Die Satznummern werden in results eingetragen: // (die Klasse RESULT wird in diesem Fall nicht benutzt!) rs=xyz->ADXget(3,"biochem",results,1); // Am Bildschirm wird angezeigt, wieviele Ergebnisse (rs) es waren: cout << endl << "Ergebnisse : " << rs << endl; // "endl" heisst "end of line" und erzeugt einen Zeilenvorschub // Alle Saetze der Ergebnismenge werden jetzt als Kurztitel (entnommen // aus der .STL-Datei) angezeigt, dann geladen und mit der // Exportdatei eee exportiert (gleichfalls auf den Bildschirm) if(rs>0) // d.h. wenn es Ergebnisse gibt: { int i=0; // Variable fuer die laufende Nummer while(i<rs) { cout << results[i] ; // laufende Nummer // Kurztitelzeile holen, in txt zwischenspeichern: k=xyz->STLget(results[i],txt); // und dann anzeigen: (die C-Funktion printf() wird benutzt) printf(", Kurztitel: %s\n",txt); // Datensatz holen und im Objekt satz zwischenspeichern: xyz->Get(results[i++],satz,0); // Kategorie #30a mit Inhalt BTC in den Satz einordnen: satz->Ins("#30aBTC"); // und dann den Satz mittels eee exportieren: // (ein Objekt der Klasse EXET hat eine "Memberfunktion" Exp(), die den // eigentlichen Export ausfuehrt, d.h. die Parameter abarbeitet) eee->Exp(satz); // Datensatz speichern (Indexbearbeitung erfolgt dabei automatisch) xyz->Put(satz); getch(); // nach jedem Satz anhalten und auf Taste warten } // Ende der while()-Schleife } return 1; // zurueck zu main(), Beendigung des Programms }
Aufmerksame Anwender lieferten Hinweise, mit denen zwei mögliche Fehlerursachen endlich aufgespürt werden konnten. Beide Probleme lassen sich vermeiden, wir werden aber die Programme PRESTO und MENUED auf FTP-Server und Mailbox daraufhin korrigieren, so daß es fehlersichere Versionen geben wird, die ansonsten dem Stand V14a entsprechen.
"Verklebte" Datensätze erkennt man daran, daß an einem normalen Datensatz am Ende noch ein weiterer auftaucht, sichtbar nur nach Umschaltung der Anzeige mit F5, der mit dem ersten gar nichts zu tun hat. Dieser zweite läßt sich dann nicht mehr normal bearbeiten, denn beim Zugriff auf ihn kommt eine Meldung wie "fehlerhafte Satznummer". Das Hilfsprogramm SNIFFER ermöglicht es, solche Fälle aufzufinden. Zustande kommt das Problem dadurch, daß der erste (normale) Datensatz beim Zurückschreiben nach einer Korrektur leider um ein oder mehrere Zeichen zu lang war, das Programm dies jedoch nicht bemerkte. Dann wurde das Steuerzeichen am Anfang des nachfolgenden Satzes überschrieben, und dies führt dazu, daß beim späteren Einlesen des ersten dessen Ende nicht mehr erkannt wird. Ein Steuerzeichen "Satzende" gibt es nämlich nicht, das Anfangszeichen des nächsten ist zugleich Endpunkt des vorangehenden Satzes. Deshalb wird, ist dieses Zeichen überschrieben, der nachfolgende Satz gleich mit eingelesen, aber ein normales Arbeiten ist damit dann nicht mehr möglich. Am besten macht man von einem solchen Satz eine Kopie mit 'C', oder kopiert mit Shift+F5 das Ganze in den Hintergrundspeicher, und versucht dann beide Sätze daraus zu rekonstruieren und normal abzuspeichern. Den verdorbenen Satz mit Anhängsel löscht man. Es bleiben dann aber noch Registereinträge des zweiten Satzes stehen. Diese verschwinden nur, wenn man den Index erneuert (Unterfunktion 'i' der Routine "organisieren").
Nun aber zu der Frage, wie man solche Fälle vermeidet, wenn man noch nicht das neueste PRESTO oder MENUED hat:
#b
: nicht das ganze Fenster löschen! #b
ist an sich ungefährlich, aber eines darf man nicht tun: den gesamten Kategorietext im
Fenster löschen, einschließlich der Kategorienummer, dann <Enter> drücken und anschließend mit F10 speichern. Das
Problem ist die intern falsche Verarbeitung des leeren Fensters, wodurch das Programm sich hinterher um ein Byte
verzählt, d.h. eines zuviel speichert. Diese Auswirkung ist gänzlich unplausibel, deshalb wurde sie wohl auch so spät
entdeckt. Sicher haben Anwender gelegentlich angenommen, daß man eine Kategorie löschen kann, wenn man einfach das
gesamte Bearbeitungsfenster löscht. Das stimmt also leider nicht. #v
-Befehl benutzen oder die Kategorienummer ohne Text
eingeben, also z.B. im Fenster die Kategorienummer noch stehen lassen, bevor man <Enter> drückt.
y .1 32
y .2 32
... (dsgl. für 3,4,5)
y .6 32
y .9 32
Die Datei CP.OPT wird nur vom CockPit gelesen (d.h. vom Programm ACP.EXE), nicht von PRESTO! Wenn daher in der CP.OPT eine Option q oder e für PRESTO steht, also Druck- bzw. Exportparameter vorgegeben werden, dann werden sie nur wirksam, wenn PRESTO vom CockPit aus gestartet wird: über die Routine "Datenbank benutzen" oder die Funktion 1. Nicht jedoch, wenn PRESTO per Hand oder aus einem Batch heraus gestartet wird. Dabei muß man die Optionen immer ausdrücklich mit angeben.
Also konkret: Wenn ich den Befehl presto -dkatalog -n1 -S
von Hand eingebe, wird keine Druck-Parameterdatei
geladen, auch nicht wenn in CP.OPT die Angabe q p-karte
steht.
Wenn PRESTO oder APAC mit dieser Meldung den Dienst versagen, reicht der Parameterspeicher nicht aus. Die Dateien für Index,
Anzeige und Druck oder Export sind insgesamt zu groß. Abhilfe: den Wert mX
in der CFG höher setzen, z.B.
mX50000
. Standard ist mX40000
bei PRESTO, aber nur mX30000
bei APAC.
Bei Verwendung der mitgelieferten Standard-Anzeigeparameter D-1.APR kommt es zu merkwürdigen Fehlern: statt Verlagsort (#74) kommt oft ein Teil eines Personennamens zum Vorschein.
Diesen Fehler korrigiert man so: (führen Sie die nachfolgenden Zeilen genau wie angegeben aus)
CockPit-Menü "Dateien", Unterpunkt "Export-Parameterdateien" aktivieren
Datei D-1.APR anwählen, zweimal <Enter>, die Datei erscheint zum Bearbeiten
f #55 <Enter> <Einfg> <Ende> <Enter> #74 e0 <Esc> q s
Damit hat man eine Zeile "#74 e0" hinter die Zeile mit "#55..." eingefügt. Diese verhindert den Fehler. Er beruht auf Komplikationen mit bedingten Postfixen, in denen Unterprogramme aufgerufen werden.
Die Datei P-KARTE.APR für den Kartendruck ist an dieser Stelle anders konstruiert, daher hat sie den Fehler nicht.
Vorsicht: eine Abfragezeile mit Vorgabe in dieser Form:
#123""xyz<
ist nicht nur wenig sinnvoll sondern führt sogar zum Absturz. Entweder keine Anführungszeichen oder mindestens ein Zeichen dazwischen!
Wenn OPAC-Benutzern das Ausgeben von Daten erlaubt werden soll, muß man APAC mit Option -e
starten:
apac ... -e
exppar /prn
oder apac ... -e
exppar/dateiname
Die Exportparameterdatei exppar.APR kann jede für diesen Zweck geeignete Datei sein. "prn" ist eigentlich ein Spezialfall, denn "prn" wird von MS-DOS als Name des direkt angeschlossenen Druckers interpretiert.
Wenn APAC so gestartet wurde, erscheint auf dem Esc-Menü der Punkt "Daten exportieren". Dieser steht als Nummer 380 in der Datei UIFAGER und kann dort z.B. in "Ergebnisse drucken" geändert werden. Anwahl des Punktes bewirkt dasselbe wie F4 in PRESTO.
Will man mehrere Druck- oder Exportmöglichkeiten zur Auswahl anbieten, kann man dies nur durch ein übergeordnetes Menü realisieren, wodurch dann APAC jeweils mit einer anderen Option -e aufgerufen würde. Eine Umschaltung innerhalb von APAC auf andere Exportparameter ist nicht möglich.
Die Bildschirm-Überschriften werden festgelegt mit den Befehlen |1=...
bis |;=...
für die
Register 1 bis 11 bzw. |a=...
für die Titelanzeige (s. Kap.10.2.1, S.163). Eine Überschrift soll oftmals
Mehrfach-Leerzeichen enthalten. Das ist möglich, indem man den auf '=' folgenden Text in Anführungszeichen setzt, z.B.:
i6=" Verlage Erscheinungsorte Erscheinungsjahre"
Ohne die Anführungszeichen würde die Überschrift hinter "Verlage" abgeschnitten.
An der "Bibliothek für Bildungsgeschichtliche Forschung" in Berlin hat Herr Ritzi ein Programm erstellt, das den allegro-OPAC in einer selbstlaufenden und interaktiven Demo vorstellt.
Grundlage ist die Software "Supershow 5", die man für ca. DM 180.- bei CDV-Software in Karlsruhe bekommen kann. Es gibt 6 Kapitel:
Jedes Kap. braucht ca. 10 Minuten.
Das Paket liegt auf dem FTP-Server: OPACSHOW.EXE auf Verzeichnis ANWENDER. (Es ist ein selbstentpackendes Archiv ( Umfang knapp 410.000 Byte), das man einmal auf einem eigenen Verzeichnis startet, dann entpackt es sich, danach startet man immer wieder mit dem Befehl "allegroc".
Weitere Information: Christian Ritzi, Tel. (030)306490-34, E-Mail 100417,2102@compuserve.com.
Wenn eine .LOG-Datei mittels update -f9
in eine Sicherungskopie eingemischt wird, sollen die Datumskategorien
nicht verändert werden. Die .LOG-Datei enthält ja Kopien von Datensätzen, die unmittelbar nach dem Speichern in die Datenbankangefertigt wurden. Wenn der seltene Fall eintritt, daß eine Datenbank wiederhergestellt werden muß, erneuert das Programm
UPDATE von V14a leider die Datumskategorien, so daß nicht der exakte "Zustand vor dem Zusammenbruch" wiederhergestellt wird.
Echte Datenfehler entstehen jedoch in keinem Fall.
Abhilfe: Wenn der Fall eintritt, die Datenbank wiederherstellen zu müssen, vorher in der .CFG die Datumsbefehle ce
und cn
ungültig machen (Leerzeichen davorsetzen), hinterher diese Zeilen wieder gültig machen.
Oder: vom FTP-Server oder der Mailbox die aktuelle Datei UPDATE.LZH abholen, die das korrigierte Programm enthält.
-fm41
Folgende (seltene) Situation ist kritisch: ein Datensatz besteht nur aus mehreren Kategorien mit gleicher Nummer und
unterschiedlichen Wiederholungszeichen. Per update -fm41
wird der Satz durch einen neuen ersetzt, der eine
Kategorie weniger hat. Dann verschwindet das letzte Feld des alten Satzes. Ein Fall, wo dies auftreten kann, sind
Exemplarsätze, die nur aus zwei oder drei Kategorien #9D
X bestehen.
Abhilfe: solchen Datensätzen noch mindestens eine weitere Kategorie spendieren (#00 oder #99n z.B.), oder das neue UPDATE.LZH vom Server holen.
V14a bietet die Möglichkeit, mit einem ak-Befehl mehrere Schlüssel zu erzeugen, indem der Code 08 zwischen die einzelnen
Schlüssel gesetzt wird, z.B. mit dem Befehl #t{ 8 }
(siehe news 38, S.4: "Sieben auf einen Streich"). Ganz ohne
Probleme ist das nicht, man muß in zwei Fällen diese Arbeitsweise vermeiden:
#-0
für die Kurztitelanzeige; d.h. man kann diesen Abschnitt nicht dazu benutzen, außer der
Kurzanzeige noch einen anderen Schlüssel zu erzeugen.
#-@
, sondern bei
komplizierten Datenbanken mit verschiedenen Satztypen kann es noch andere Stellen geben.
Der zweite Fall führt zu der Empfehlung: Konstruieren Sie Ihre Indexparameter so, daß der erste ak-Befehl ak=zz+@
lautet, und daß in dem bei #-@
beginnenden Abschnitt in jedem Fall, also für jeden Satztyp, tatsächlichder Primärschlüssel entsteht, aber nur dieser.
Wenn die "Organisier"-Routine 7 (dahinter steckt der Aufruf index -f7
) vom CockPit aus benutzt wird, um eine
Datenbank komplett zu erneuern, passiert folgendes:
Das Programm INDEX sucht sich auf dem Datenverzeichnis alle Dateien der Typen .ALD und .ALG und macht daraus eine neue
Datenbank; die Numerierung der Dateien wird durch Option -n
geregelt: gibt man z.B. -n7
, kommt
alles in eine neue Datei mit Nummer 7, gibt man -n0
, werden neue Dateien mit den Nummern der alten angelegt, so
daß die neuen dann inhaltlich den alten Dateien entsprechen, bis auf die gelöschten Sätze, welche verschwinden. Die Dateien
werden auf den Typ .A1D bzw. .A1G umbenannt, bevor es losgeht, hinterher wird das rückgängig gemacht, wenn es geht. Wenn
CAT_1.ALD neu entstanden ist, kann natürlich CAT_1.A1D nicht zurückbenannt werden und bleibt so stehen. Soviel zum Ablauf. Was
kann dabei schiefgehen? Wenn man immer vom CockPit aus gearbeitet hat, normalerweise nichts. Ansonsten aber zwei Dinge:
-ni
(mit i>0, also nicht -n0
) gestartet wurde, dann prüfe man vor dem
Neuaufbau, ob Dateien der genannten Art vorliegen (CockPit-Menü "Dateien" / "Sämtliche Dateien" anwählen, dann sieht man sie).
Kurz: Man sorge dafür, daß nur noch diejenigen Dateien des Typs .ALD auf dem Datenverzeichnis stehen, die wirklich zurDatenbank gehören, und keinesfalls irgendwelche .ALG-Dateien.
s
Innerhalb einer Steuerzeichenkette kann bei V14a der neue Strukturbefehl (siehe Kap. 10.2.0, S.155) s
verwendet
werden. Er verändert für die nachfolgenden Befehle den Anfangspunkt der Kategorietexte, also den Parameter ks
(Kap. 10.2.5, S.171). Bisher war diese Einstellung unveränderbar während des Programmlaufs. Nun bewirkt ein Befehl wie
#t{ s0 }
daß von diesem Punkt an der gesamte Kategorietext, also einschließlich '#' und Nummer, ausgegeben wird. Zu Beginn eines neuen
Satzes wird automatisch auf den Ausgangswert von ks
zurückgeschaltet.
#uxb
: Nummer des aktuellen Index
Neben der Sonderkategorie #uxa
, die den Indexeintrag enthält, von dem aus man zugegriffen hat, gibt es ab V14
die Sonderkategorie #uxb
, und zwar enthält sie die Ziffer des Registers (':' für 10 und ';' für 11), welches
dabei benutzt wurde. Das bedeutet, man kann Anzeigeparameter machen, die für jedes Register eine andere Anzeige erzeugen. Manbaut am besten dann einige Sprungbefehle ein, etwa so:
#uxb +X c"1" e0 enthält #uxb die Ziffer 1? Dann nach #-X springen #uxb +Y c"2" e0 ... #-X
Benutzt wurde diese Methode in der Datei D-1.CPR zur Formate-Datenbank (s. Seite 9).
Wenn man mit Kopf- und Fußabschnitten arbeitet, erscheinen die Zeilen in falscher Reihenfolge, wenn es sich um mehr als zwei Zeilen handelt. Dafür gibt es leider keine Abhilfe. Das Problem ist nicht relevant, wenn man Listen mit Textprogrammen weiterverarbeitet, weil dann der Seitenumbruch sinnvollerweise nicht von allegro, sondern von der Textsoftware gemacht wird.
Wenn man mit einem Manipulationsbefehl ,"_ _X_"
alle Leerzeichen in einer Kategorie durch 'X' ersetzen will,
klappt das im Bereich der ersten 5 Zeichen nicht.
Abhilfe: man ergänzt den Befehl wie folgt:
#nn p"12345" ,"_ _X_" b5
.
Das Programm benötigt zum Arbeiten freien Plattenraum von der doppelten Größe der zu sortierenden Datei. Ist das nicht gegeben,verweigert es den Dienst mit der Meldung "nirgends genug Platz", nachdem es vorher noch die Laufwerke A: und B: prüft (wenn eins davon nicht vorhanden ist, gibt es an dieser Stelle einen Fehler).
Folgendermaßen kann man u.U. trotzdem sortieren:
Wenn z.B. die Ausgangsdatei auf C: liegt und auf einer anderen Platte (oder Partition) genug Platz ist, z.B. auf D:, schaltet man auf D: um und startet ASORT von dort aus mit dem Aufruf:
asort -ic:
<ausgangsdatei> -o
<zieldatei>
Die zieldatei entsteht dann ohne Problem auf D:.
Die Parameter rs
, re
und fe
(s. Kap.11.2.1, S.222/23) sind in der Länge auf 25
Zeichen beschränkt. Hat man tatsächlich einmal eine längere Zeichenkette für einen dieser Zwecke, nehme man für rs
und re
davon den Endabschnitt, für fe
den Anfangsabschnitt, und zwar so, daß der Text
dann noch signifikant ist. Wird das nicht beachtet, kann es zum Absturz kommen.
(s.a. unter PRESTO, S.5)
Die CD-Produkte VLB, DNB und Books-in-Print haben in der letzten Zeit z.T. mehrfach ihre Struktur verändert. Wenn ein Import aus einer dieser Quellen plötzlich nicht mehr oder fehlerhaft abläuft, holen Sie sich zunächst die neuesten Versionen der Dateien VLB.AIM, DBCD.AIM bzw. BIP.AIM vom FTP-Server.
Zuerst für die Plattformen Solaris und Linux, in Kürze auch für AIX, Sinix und HP-UX, wurden die Programme neu kompiliert, getestet und bereitgestellt. Die Anwender finden die jeweils aktuellen Dateien und weitere Informationen auf den bekannten Verzeichnissen des FTP vor.
Die neuesten Versionen der Programme arbeiten auch mit klein geschriebenen Dateinamen. Z.B. wird zuerst nach A.CFG gesucht ($A.CFG geht unter UNIX übrigens nicht!), wenn es nicht existiert, wird a.cfg gesucht. Dann aber müssen die Datenbankdateien auch .ald und nicht .ALD heißen. Man hat hier eine Möglichkeit, die UNIX-Parameterdateien abweichend von den DOS-Dateien zugestalten und die Typbezeichnung dann in Großbuchstaben zu geben. Um Probleme ganz zu vermeiden, ist es aber vielleicht die beste Politik, generell nur Kleinschreibung zu verwenden, besonders wenn ein Filesystem zugleich von DOS und UNIX aus benutzt wird. Auch das Kopieren per FTP wird so erleichtert.
Das Problem des Zeichensatzes (DOS-ASCII vs. UNIX-ANSI) läßt sich vorerst nur so lösen:
In der Regel kopiert man eine DOS-Datenbank unverändert mittels FTP (Modus BIN!) in ein UNIX-Filesystem. In die Anzeigeparameter (meistens D-1.cPR) baut man diese Befehle ein:
tD dx=1
Damit wird eine Tabelle D.APT geladen. (Sie liegt auf dem Verzeichnis UNIX-14.) Diese Tabelle setzt die Zeichen von des OSTWEST.FON (erweitertes DOS-ASCII) nach UNIX-ANSI um. Wenn man nicht A.CFG sondern z.B. P.CFG verwendet, muß sie D.PPT heißen. Außerdem muß man in der D-1.cPR die evtl. vorhandenen Farbbefehle (meistens sind das die Zwischenteile 71 bis 78) ausblenden.
Wenn man allerdings dann in den Editor geht, findet man plötzlich ganz falsche Zeichen vor. Auf dieser Ebene wird die Umcodierung (noch) nicht wirksam. Also muß man vorerst alle Bearbeitungen und Eingaben auf der DOS-Ebene durchführen.
Die umgekehrte Umwandlung (d.h. wenn man eine unter UNIX erstellte Datenbank als Kopie in einem DOS-System verfügbar machen will) wird durch eine Tabelle A.APT unterstützt, die man in gleicher Weise in die D-1.APR des DOS-Systems einbinden muß. Diese Tabelle wird erst im Oktober verfügbar sein, ist aber reine Fleißarbeit.
Man erreicht die Leitseite der UB weiterhin über http://www.tu-bs.de
. Neben den Zugängen zu den diversen
Datenbanken (in Kürze auch der Zeitschriftendienst ZD des DBI und in Kürze das Archiv der allegro-Liste) findet man hier unter
dem Stichwort "Hintergründe" eine Dokumentation (Stand: 29.6.95, weitere Verbesserungen stehen bevor) der gesamten Methodik und
Implementierung (samt HTML-Dateien und Perl-Skript), erarbeitet von Dierk Höppner (e-mail-Adresse: D.Hoeppner@tu-bs.de
).
Die UB Braunschweig hat 1994 eine Neuauflage des Werkes "Was sind und was sollen bibliothekarische Datenformate" herausgebracht, wobei eine Diskette mit einer allegro-Datenbank mitgeliefert wurde. Diese Datenbank umfaßt eine Gesamtkonkordanz der Formate Pica3, Pica+, USMARC, UNIMARC, MAB, ZDB-Zeta, allegro (A.CFG) und NZN. Nachdem zu den Formaten USMARC, UNIMARC und MAB neue Handbücher erschienen sind, muß diese Datenbank überarbeitet werden. Zu einem großen Teil ist das schon geschehen. Eine Neuausgabe des gedruckten Werkes soll vorerst nicht erscheinen, aber die Datenbank wurde in der aktuellen Fassung auf dem FTP-Server unter ANWENDER\FORMAT.EXE (ein selbstentpackendes Archiv incl. Parameterdateien und Programm APAC) bereitgestellt.
Die Software wurde an den neuesten Stand des Kernsystems angepaßt und vor kurzem an die Anwender ausgeliefert sowie auf FTP verfügbar gemacht. Funktionale Verbesserungen sind in der neuen Handbuchauflage schon veröffentlicht worden.
Es gibt einen Fehler in der Parameterdatei KONTR1.APR. Sie wird im Zusammenhang mit der Kontingentrekonstruktion benutzt. Der
Rückschaltbefehl in Zeile 105 (#<
) muß hinter Zeile 107 ( #-n
) verschoben werden, sonst kann es zum Fehler 'retrieval stack overflow'
kommen.
Auch das Ausleihsystem wurde, mit vielen funktionalen Erweiterungen gegenüber der V12-Ausgabe und Verbesserungen der Benutzung,inzwischen ausgeliefert. Die ÖB-Anwender werden über die Büchereizentrale Lüneburg betreut, soweit sie das dort gepflegte Schema O.CFG einsetzen. Lüneburg erarbeitet auch die Anwendungsbeschreibung. Alle anderen Abonnenten haben eine Diskette erhalten, die auch die derzeit vorliegende Dokumentation für das Schema A.CFG enthält. Eine Datei !README.WB auf dieser Diskette (enthalten in der Archivdatei A9401WB.EXE) informiert über die Installation und die für das Parametrieren zu beachtenden Einzelheiten. Wer die vorige Version schon im Einsatz hatte, muß einige Umstrukturierungen an den Daten und Parametern durchführen und den Index erneuern.
Weil oft danach gefragt wird, fassen wir ganz knapp die Anforderungen des allegro-Systems an Hard- und Software etc. zusammen, die man für V14a veranschlagen muß.
S.25: (Kap. 0.7) Zu dem Aufruf des Programms UPDATE muß die Option -S
ergänzt werden, wenn diese Prozedur auf
einem Einzelplatzsystem benutzt wird. Sonst läuft UPDATE sehr langsam und kann die Schlüssel nicht einordnen, d.h. man findet
hinterher die neuen Daten nicht!
S.50 Ein Programm KEYTEST wird erwähnt. Gemeint ist QRIX, aufrufbar vom CockPit-Menü "Funktionen".
Entwicklungsabteilung nutzt dieses Medium gern zur Verbreitung von Verlautbarungen. Für alle, die noch nicht lange am Internet hängen, wiederholen wir die Angaben, die man braucht, um sich einzuklinken:
E-mail-Adresse: allegro@mpim-bonn.mpg.de
An diese Adresse schickt man eigene Mitteilungen, die dann von allen Teilnehmern empfangen werden. Wenn Sie Ihrerseits alles lesen wollen, was die anderen schreiben, senden Sie an folgende Adresse:
listserv@mpim-bonn.mpg.de
(aber bitte nur an diese, nicht an die oben genannte!)
die Meldung
subscribe allegro
Vorname Nachname ... und später, um sich abzumelden: unsubscribe allegro
dann geht das seinen Gang, d.h. Sie bekommen ab sofort etwas mehr Post als vorher, und Sie können Fragen und Kommentare an die
ganze Runde schicken, also an die Adresse allegro@mpim-bonn.mpg.de
.
Datum der letzen Änderung: 11.09.95
© 1995, UB Braunschweig
Bernhard Eversberg (b.eversberg@tu-bs.de)