Left Up Right Allgemeine Mapschnittstelle, die auch relationele Datenbanken einbindet

Einbindung von Adabas

SQL-Anweisung

Die Adabas-Anweisungen werden im Konstruktor als Zeichenkette übergeben.
In der Zeichenkette wird %s durch den aktuellen Schlüssel ersetzt. Die Anweisungen werden denn mit PREPARE von der Datenbank vorbereitet und mit EXECUTE ausgeführt.

Die Ergebnismenge wird im Falle einer SQL-Anweisung mit FETCH USING DISCRIPTOR geholt. Es wird z.Z. nur der erste Satz in der Ergebnismenge geholt.

Das Ergebnis wird aus der sqlda Struktur in den Ergebnisparameter des Types Gdat kopiert. Dabei wird vom Datenbanksystem die Umwandlung in eine Zeichenkette angefordert,führende und folgende Leerzeichen entfernt und die Felder mit : getrennt.

Einbindung von DB-Prozeduren

Wenn die Daten aus der Datenbank noch aufbereitet werden sollen, braucht man eine Möglichkeit mehrere SQL-Anweisungen und andere Operationen anzugeben. Um einerseits Komplexität im dieser Arbeit zu reduzieren und andereseits dem Administrator das Erlernen einer weiteren Sprache zu ersparen verzichten wir auf Sprachimplementierungen. Zudem erwies sich der Aufruf der DB-Prozedueren als relativ problemlos:

Die Prozeduraufruf wird mit PROC eingeleitet. Der Name mus mit dem Datenbankbesitzer und Programm erweitert werden. Also z.B.

PROC MDBA.MG.GETGROUP('%s',:erg)
. Das %s wird von unserer Aufrufroutine wieder durch den aktuellen Schlüssel ersetzt. Mit dem Doppelpunkt wird angezeigt, daß die Routine einen Call-By-Reference-Rückgabeparameter zurückliefert. Der Name, hier "erg" ist egal.

Der Ergebnisparameter wird genau wie bei einer FETCH-Anweisung im sqlda zurückgeliefert.

Folgendes ist mir im Zusammenhang mit Adabas noch unbekannt

Als Firstkey-Anweisung hätte ich gerne: SELECT FIRST login FROM passwd und als Nextkey SELECT NEXT login FROM passwd KEY login='%s'

Im Query funktionieren diese Anweisungen, im Programm irgendwie nicht.

Abhängen

Mehrere Serverdbs

wie kann man Adabasconn so erweitern, daß man mehrere Serverdbs verwenden kann ?

Modifikationsdatum

Wie kann man das Modifikationsdatum der Tabelle aus den Metadaten entnehmen ?
Rudolf Weber Informatik und Netzwerkverein Ravensburg e.V