Paralleles Nachladen in 2 Datenbanken

Heinrich Allers ALLERS at nov-bis2.bis.uni-oldenburg.de
Mi Jan 17 01:12:18 CET 1996


Liebe Leser der Allegro-Liste,

                nach 'ner Menge Stunden von Versuchen, der
Angelegenheit allein Herr zu werden, streue ich sie nun in 
die Runde in der Hoffnung ...

Ich arbeite mit 2 Datenbanken (einer Ausgangsdatenbank
mit Titels"atzen und einer zweiten Datenbank mit
Stamms"atzen). Mein Problem ist folgendes:

Ich m"ochte mit einem bestimmten Arbeitstext (hier der
Ident.-Nummer aus #00)

1. Einen Satz in der Ausgangsdatenbank nachladen und - wie
   auch immer - ausgeben.

2. Aus der zweiten Datenbank unter Benutzung des Inhalts
   von #90 (Sign.) eine bestimmte in Form eines Register=
   schl"ssels vorliegende Information herholen und auch 
   ausgeben. (Das geht mit Umschaltbefehl #<i, siehe 
   Systemhandbuch 10.2.6.7, Vers. 14: S. 196 obere H"alfte).

3. Dann m"ochte ich in der Ausgangsdatenbank den Satz mit dem
   Schl"ussel nachladen (immer noch mit dem gleichen Nachlade-
   Arbeitstext!), der dem folgt, der unter Punkt 1 benutzt
   wurde. (Das soll auch gehen, siehe Handbuch an der gleichen 
   Stelle; Zitat: "Mit #<0 wird zur ersten Datenbank zur"uckge=
   schaltet und zugleich der Zeiger im Index zur"uckgesetzt, 
   damit man weiterbl"attern kann.")

4. Dann soll - wie in Punkt 2 - die zugeh"orige Information aus
   der zweiten Datenbank herausgeholt und ausgegeben werden.

5. Dann m"ochte ich in der Ausgangsdatenbank den Satz mit dem
   Schl"ussel nachladen (immer noch mit dem gleichen Nachlade-
   Arbeitstext!), der dem folgt, der unter Punkt 3 benutzt
   wurde.

6. Dann soll - wie in Punkt 2 - die zugeh"orige Information aus
   der zweiten Datenbank herausgeholt und ausgegeben werden.

7.
8.
9.
...
...... und so weiter und so fort - bis es mit dem gegebenen
       Nachlade-Arbeitstext nichts mehr in der Ausgangsdaten=
       bank nachzuladen gibt!

###

Diesen Ablauf beansprucht folgende Parametrierung
zu leisten - sie beansprucht es aber nur, tut es nicht,
das sei schon jetzt verraten! Nach Punkt 4 streikt
n"amlich das Verfahren, es ist Schlu"s mit der Ausgabe!
(Bis dahin erfolgen aber alle Ladegeschichten korrekt).


 [Parametrierung, ausschnittsweise:]

#00 =id e0     Beschicken von #uid
#uid |90       Nachladen von Datensatz
#20            Ausgabe von #20

#>R            Ausgabe von Information aus zweiter Datenbank
#<             Nachgeladener Satz wird vergessen 

#-f            Beginn einer Schleife
#uid +#99X |93  Nachladen des N"ACHSTEN Datensatzes mit auf
                #uid passendem Schl"ussel
#t{"AAAA"}     Testhilfe
#+#            Falls nichts mehr nachzuladen ist, Ende

#99X           Hier weiter, wenn etwas in vorletzter Zeile 
               nachladbar war
#20            Ausgabe von #20 

#>R            Ausgabe von Information aus zweiter Datenbank

#<+f           Nachgeladener Satz wird vergessen und dann
               zu #-f zur"uckgesprungen
#t{"BBBB"}     Testhilfe
#+#            Ende 

 Unterprogramm R zum Herausholen von Information aus 
 Register 9 der zweiten Datenbank:
#(R             Beginn UP R
#90 =nl e0      #unl wird aufbereitet
#<2             Umschalten auf zweite Datenbank
#unl p"<" |98   Kein Nachladen, sondern nur Schl"ussel -> #ux9
#ux9 C          Ausgabe von #ux9
#<0             R"uckschalten auf Ausgangsdatenbank
#)R             Ende UP R

###

Als Diagnosehilfen sind hier ein paar Testausgaben eingestreut;
damit l"a"st sich sehen, da"s interessanterweise der Schlu"s 
nach Punkt 4 mit "BBBB" und nicht mit "AAAA" endet.

###

Als Alternative und pragmatischer Weg zur Problemvermeidung b"ote 
sich noch an, mit den besonderen Nachlademodi 4-7 zu arbeiten, 
also

statt ...|90  zu schreiben: ...|94   und
statt ...|93  zu schreiben: ...|97   und

den Vergessbefehl

#<

fortzulassen und

#<+f 

zu ersetzen durch

#+f

Aber auch dann funktioniert die Sache nicht wie erhofft,
wenn auch mit einem ganz anderen Erscheinungsbild des
Fehlers. Aber darauf soll, um es nicht noch l"anger werden
zu lassen, jetzt nicht eingegangen werden.

###

Verzeihung f"ur den langen Sermon, aber ich wollte es so 
nachvollziehbar wie m"oglich machen!

Mit besten Gr"u"sen von

Heinrich Allers
allers at bis.uni-oldenburg.de



Mehr Informationen über die Mailingliste Allegro