Immer wieder fallen auf den Tisch des geplagten Testers neue Versionen von altbekannten Programmen. Diese UPDATES sollen dem Anwender das Leben mit seiner Software erleichtern und ihm neue Horizonte erschließen. In der Reihe ‘Aus alt mach neu' zeigen wir Ihnen heute die Folge ‘ADIxxxx 2.3’. Sowohl von Adimens ST als auch von Aditalk ST liegt inzwischen die Version 2.3 vor. Aditalk wurde noch in der Version 2.23 getestet.
Bevor wir zu den Neuerungen kommen, wollen wir im Schnelldurchgang noch einmal rekapitulieren. Adimens ST ist eine relationale Datenbank, die von einer GEM-Oberfläche bedient wird.
Datenbanken sind mit Karteischränken vergleichbar, in denen einzelne Karteikästen, die Dateien stehen. In den Kästen befinden sich einzelne Karten mit verschiedenen Einträgen, die Datensätze mit den Datenfeldern.
Das relationale Prinzip bei Datenbanken steht im Gegensatz zum Prinzip der hierarchischen Datenbank. Der Begriff 'Relationale Datenbank’ wurde schon 1970 von Dr. E.F.Codd für ein (damals noch) theoretisches Datenbankmodell verwendet. Auf diesem Modell baute dann IBM ein Datenbanksystem für Großrechner auf. Die Computer jedoch wurden immer kleiner und leistungsfähiger, so daß heute auch Tischrechner nach diesem Prinzip Daten verwalten können. Herausstechendes Merkmal der relationalen Datenbank ist ihre Flexibilität im bezug auf Datenein-und -ausgabe sowie die Änderung der Dateistruktur. Dr. Codds Modell wird in mehreren Büchern abgehandelt, der interessierte Leser kann sich dort eingehend informieren.
Nach diesem kurzen Abstecher in die graue Theorie zurück zu unseren beiden Testkandidaten. Ich möchte mich zunächst mit Adimens auseinandersetzen, bevor ich dann auf Aditalk komme.
Am äußeren Erscheinungsbild von Adimens hat sich zunächst nicht viel geändert. Der Schuber, in dem sich die Disketten und das Handbuch befinden, ist etwas größer geworden, das Handbuch wurde stellenweise deutlich überarbeitet. Alle neuen Funktionen werden beschrieben, ein brauchbares Stichwortverzeichnis und sogar ein Abschnitt über Systeminstallation wurde aufgenommen. Da hat wohl jemand den Test einer Verbraucherzeitschrift gelesen und Angst bekommen. Für den erfahrenen Datenbänker ist ein relativ kurzer Abschnitt über die wesentlichen Neuerungen vorhanden.
Wie bisher besteht das Adimens-System aus verschiedenen Modulen, INIT, EXEC, DRC und REORG. Mit INIT werden die Definitionen der Datenbank erstellt, also definiert, was die Karteikarten enthalten sollen und in welchen Kasten sie gehören. In EXEC kann man die Daten verwalten, also Daten eingeben, suchen, sortieren und ausgeben. DRC ist ein Relikt früherer Versionen von Adimens und wird eigentlich nicht mehr benötigt. REORG schließlich übernimmt das physikalische Aussortieren von gelöschten Datensätzen bzw. die Neuorganisation der Datei, wenn Merkmale zu der Definition hinzugefügt oder aus ihr gelöscht wurden.
Auf den ersten Blick präsentiert sich Adimens wie bisher. Erst beim zweiten Hinschauen fallen die Neuerungen wirklich ins Auge. Besonders auffällig ist die neue Zugangsverwaltung. Es ist nun möglich, für einzelne Datenfelder oder für ganze Dateien Zugangsprivilegien für bis zu 16 Benutzer zu vergeben (Bild 1). Dabei kann auch festgelegt werden, ob ein Benutzer in einer Datei nur lesen darf, nur Neueingaben vornehmen oder Änderungen durchführen bzw. auch Daten löschen. Die Zugangsberechtigungen werden von einem “SuperUser" vergeben. Auch kann nur ein “SuperUser" die Datenbankdefinition noch mit INIT verändern.
Wurde mindestens ein Benutzer mit Paßwort definiert, kann man mit EXEC und INIT erst eine Datenbank öffnen, nachdem man sich durch Eingabe seines Namen und seines Paßwortes identifiziert hat (Bild 2). Wurde kein Paßwort definiert, kann man mit dem System arbeiten wie bisher. Allerdings muß die Datenbankdefinition mit dem neuen INIT bearbeitet werden, da zusätzliche Dateien erstellt werden, ohne die die neue Version von EXEC eine Datenbank nicht öffnen kann. Dieser Prozeß ist jedoch nur eine Frage von Minuten.
Eine weitere Neuerung betrifft den Im port und den Export von Daten, einen der bisherigen Schwachpunkte von Adimens. Es ist nunmehr möglich, Begrenzer für Datenfelder frei zu definieren, so daß ein Datenaustausch mit verschiedenen anderen Datenbanksystemen. Spreadsheets oder Programmiersprachen auch von PCs kein Problem mehr darstellt (Bild 3).
Bei Listenausgaben können Daten nun zu Gruppen zusammengefaßt werden. Über diese Gruppen können auch für alle Zahlenwerte Zwischensummen gebildet werden. Voraussetzung hierfür ist, daß die zusammenzufassenden Felder im aktiven Schlüsselfeld Gemeinsamkeiten aufweisen.
Einige weitere kleinere Änderungen vereinfachen den täglichen Umgang mit Adimens. Scrollen in Fenstern kann mit der “Esc"-Taste abgebrochen werden. Die Datenbank erweitert sich jetzt automatisch. wenn sie voll ist, der Umweg über INIT ist also hinfällig. Es gibt in den Datenmasken nun einen Datenpuffer, mit dem es möglich ist, Inhalte aus Datenfeldern zu kopieren oder zu verschieben und zwar innerhalb einer Datei oder in eine andere Datei. Dabei kann die andere Datei auch in einer anderen Datenbank enthalten sein. Schließlich erlaubt Adimens jetzt auch mehrdeutige Verzweigungen. Dabei werden zusätzliche Verzweigungen neben der ersten Verzweigung in der Dialogbox ebenfalls angezeigt.
Adimens hat einige neue Funktionen erhalten, das Update ist nicht nur Kosmetik. Es sei mir dennoch erlaubt, eine Frage zum Thema Datenschutz zu stellen. - Was nützt der Schutz der verschiedenen Felder, wenn auf Diskette in den Dateien Zeichenketten nicht verschlüsselt werden? - Es ist zwar unwahrscheinlich, daß jemand mal auf die Idee kommt, sich Dateien über die Anzeigefunktion des Desktops anzusehen, aber nicht unmöglich. Dabei können der entsprechenden Person im Normalfall keine wichtigen Zahlen in die Hände fallen, denn die werden aus Platzgründen vom Compiler, mit dem Adimens erstellt wurde, sowieso gepackt abgespeichert. Zeichenketten, also Adressen, Bemerkungen und ähnliches sind hingegen klar lesbar. Es gilt, dem Datenklau auch dieses Hinterpförtchen vor der Nase zuzuschlagen.
Neben Adimens, das ja eigentlich ‘nur’ eine (sehr komfortable) Bedienoberfläche für den Datenbankzugriff ist, bietet ADI für den Programmierer schon länger die Programmiersprache Aditalk an. Auch diese wurde wesentlich überarbeitet.
Aditalk unterstützt alle Neuerungen von Adimens und ist jetzt auch mit den Datenmasken von Adimens vollständig kompatibel. Es sind zwar nur wenige Befehle hinzugekommen, aber dafür wurde so mancher Fehler aus dem System entfernt. Erheblich überarbeitet wurde auch das Handbuch, wenn es auch für meinen Geschmack immer noch zu unübersichtlich ist.
Für den Anfänger ist ein großer Übungsteil hinzugekommen, endlich gibt es eine Kurzreferenz. Leider ist das Stichwortverzeichnis wieder mitten im Handbuch gelandet, aber man kann es glücklicherweise umheften. Im Übungsteil sind unter anderem auch wichtige Hinweise enthalten, was man beim Programmieren mit Aditalk beachten muß. Es gibt, wie ich bereits früher festgestellt hatte, keinen Unterschied zwischen Groß- und Kleinschreibung. Endlich steht's im Handbuch!
Aditalk verfügt nun über die Funktion STRIP, um Umlaute gegen die entsprechenden Normalbuchstaben auszutauschen. Dabei werden auch alle Leerzeichen aus einer entsprechenden Zeichenkette entfernt. Aus
Äne DÖS Shüll
wird
AneDOSShull.
Beim Suchen über einen Schlüssel wurde der Befehl LOOK neu aufgenommen. Im Prinzip arbeitet er wie FIND, aber die Suche beginnt beim aktiven Datensatz und nicht beim ersten.
Es ist nun auch möglich, Eingaben aus einer Datei oder von einer Schnittstelle statt von der Tastatur zu übernehmen. Umleitung, oder Redirection' heißt das Zauberwort. Eine Änderung, die das Arbeiten mit Aditalk erleichtert, bezieht sich auf den Ediermodus. Wird in einem Feld einer Datenmaske die Return-Taste gedrückt, wird ein eventuell schon vorhandener Wert übernommen und nicht mehr gelöscht.
Das Programmieren mit Aditalk ist immer noch nicht ganz einfach. Man sollte einen Editor verwenden, der in der Lage ist, externe Programme aufzurufen, da Aditalk über keinen integrierten Editor verfügt. Aditalk ist auch nicht in der Lage, selbst Dateien zur Datenspeicherung zu erzeugen, diese Arbeit muß mit dem Modul INIT erledigt werden.
Gegenüber älteren Versionen sind die Fehlermeldungen präziser geworden, bzw. man findet sie im Handbuch. Es ist mir auch nicht mehr gelungen, durch einen Fehler bei der Programmierung einen Absturz zu verursachen, was früher öfter mal passierte.
Es sind jedoch immer noch verschiedene Fehler vorhanden. So stimmen die Angaben aus dem Handbuch nicht immer mit der Wirklichkeit überein. Solche Inkonsistenzen führen zu Fehlern, die nur sehr schwer zu finden sind. Ein Beispiel:
Im Handbuch steht, daß eine Programmzeile maximal 80 Zeichen enthalten darf. Soll ein Befehl länger werden, muß am Ende einer Zeile ein Semikolon stehen, damit die Übersetzungsroutine den Befehl richtig bearbeitet. In der Praxis darf man aber kein Semikolon setzen, da sonst Fehlermeldungen erzeugt werden. Es bedarf überhaupt keiner besonderen Markierung, um Befehle zu schreiben, die länger als 80 Zeichen sind. Dies bedeutet zunächst eine nicht unerhebliche Vereinfachung. Allerdings hat die Sache einen Haken. Es gibt Befehlsworte, die in verschiedenen Kontexten verwendet werden und dort verschiedene Bedeutungen haben. So kann der Befehl READ auch als READ SAVE verwendet werden, die Wirkung ist hier unerheblich. Es gibt aber auch den eigenständigen Befehl SAVE, um Variablen auf einem externen Medium zu speichern. Schreibt man nun in einer Zeile
READ
und in der nächsten Zeile
SAVE test TO datei
wird dies als READ SAVE aufgefaßt, und Aditalk versucht, den Rest der zweiten Zeile als Befehl zu interpretieren. Wenn man solche Fehler erkannt hat, ist es meist verhältnismäßig einfach, solche Situationen zu umgehen, aber bis man so weit ist, hat man viel Zeit vertan.
Subtile Programmierfehler sind in Aditalk nur schwer aufzustöbern. Das liegt an der Art der Programmabarbeitung. Aditalk übersetzt den Quelltext eines Programmes zunächst in eine Tokendatei, um das Programm später schnell ausführen zu können. Bei dieser Übersetzung findet eine Syntaxkontrolle statt. Fehler werden direkt angezeigt. Treten aber erst bei der Abarbeitung des Programmes Fehler auf, erscheint eine Fehlermeldung und der Hinweis, man solle das Programm mit dem Befehl DEBUG bearbeiten. DEBUG zeigt an, wo im Quelltext der Fehler auftrat. Oft genug entspricht der Ort, an dem sich ein Fehler auswirkt aber nicht dem Ort, an dem der Fehler im Programm steht, und man muß suchen.
Aditalk ist eine relativ mächtige Datenbank Programmiersprache, hat aber einige Besonderheiten, die insbesondere für Programmierer, die von anderen Systemen kommen, gewöhnungsbedürftig sind. Seine Syntax unterscheidet sich von den Standardsystemen wie dBase und SQL deutlich, was einen Umstieg nicht nahelegt, da es inzwischen auch auf dem ATARI eine große Auswahl verschiedener Datenbanksysteme gibt.
Wer allerdings schon mit Adimens arbeitet und kleinere automatisierte Abläufe benötigt, die mit Adimens nicht zu realisieren sind, erhält mit Aditalk ein Werkzeug an die Hand, das diese Arbeiten erledigen kann, auch wenn es der Einarbeitung bedarf. Programmierer, die höher hinaus und größere eigenständige Datenbankanwendungen schreiben wollen, die unter GEM laufen sollen und nicht nur als TOS-Programm, sollten sich die Adi-PROG-Serie anschauen, die alle Datenbankfunktionen von Adimens in Form von Bibliotheken für verschiedene Programmiersprachen zur Verfügung stellt. Die Erstellung von großen Anwendungen unter Aditalk ist zwar möglich, aber wenig sinnvoll, da die immer notwendige Fehlersuche zur Qual wird. Der Befehl DEBUG ist einfach nicht mächtig genug, um auch bei kniffligen Problemen eine echte Hilfe zu sein.
Anwender von Adimens und/oder Aditalk sollten sich ihr Update möglichst bald besorgen, da besonders bei Aditalk viele Fehler beseitigt wurden und bei beiden Programmen durchaus interessante neue Funktionen hinzugekommen sind.
Ein Runtime-Modul für Aditalk-Anwendungen ist übrigens in Vorbereitung Damit soll ein eventueller Vertrieb von selbsterstellten Problemlösungen vereinfacht werden.
Christian Schmitz-Moormann
Bezugsadresse
ADI Software GmbH
Bunsenstr 22
7500 Karlsruhe