Re: [Allegro] Zusatztabelle bei Indexparameter: Umkodierung fällt aus

Thomas Fischer fischer at sub.uni-goettingen.de
So Mär 3 17:31:30 CET 2013


Lieber Herr Allers,

schönen Dank für das Mitdenken!

Am 03.03.2013 um 01:01 schrieb Heinrich Allers:

> Hallo Herr Fischer:
> 
>> ich benutze in einer intern UTF-8-kodierten Datenbank eine Tabelle,
>> um die Zeichen auf ASCII zu reduzieren, z.B. entsteht ein Registereintrag
>> |2forderung|Förderung
> 
> Klar soweit.- Zur weiteren Verständigung schlage ich vor, die Indexparameterdatei dieser Datenbank 
> fug.?pi und die in diese Indexparameterdatei eingebundene Tabelle abc.?pt zu nennen. 

Gerne. Konkret heißen sie fug.gpi und iu-utf8.gpt, sie liegen beide im Datenverzeichnis FinUgr im Allegroverzeichnis.
> 
>> mit dem Original hinter dem Balken und der reduzierten Version davor.
>> Das wird mit F7 so angezeigt.
>> 
>> Das klappt aber nicht immer. Manchmal fällt die Konvertierung aus und
>> dann zeigt F7 bei demselben Datensatz
>> |2förderung|Förderung
>> da wird im ersten Ausdruck nur Groß/Klein und nicht UTF-8 umkodiert.
> 
> Die UTF-8-Umcodierung steckt in abc.?pt, das haben Sie gesagt. Aber wo steckt die Umschlüsselung 
> Groß-->Klein? Steckt die auch in abc.?pt? Oder steckt sie stattdessen in fug.?pi?. 

Die ist über einen normalen Befehl
q A/Z a
in abc.?pt enthalten. Groß/Kleinschreibung für Zeichen jenseits von 128 wird über Q-Befehle gesteuert.


>> Es ist mir nicht gelungen herauszufinden, wann das passiert:
>> eher nicht nach einem frischen Start, einmal passierte es nach Neuaufruf
>> der Indexparameterdatei per x ind p fug.
> 
> Gegenfrage: Ist es *nie* bei laufendem Normalbetrieb (also ohne Neustart des PC und ohne Neustart des 
> Programms und ohne tiefergreifende Aktionen wie z.B. 'x ind p fug') passiert?

Naja, wie so oft sieht man so etwas erst wenn man in der Datenbank herumprokelt.
Im "normalen" Betrieb ist mir das noch nicht aufgefallen.

>> Hat jemand eine Idee, woran das liegen oder wie ich das beheben könnte?
> 
> Na ja, 'ne Idee nicht, aber immerhin ganz vage, womöglich sogar Inkompetenz verratende Vermutungen. 
> 
> Meine Vermutung ist, daß im Netzwerk zu gewissen Momenten die Anbindung des betreffenden 
> Laufwerks Aussetzer hat, die bewirken, daß die abc.?pt und/oder die fug.?pi beim a99-Aufruf oder beim 'x 
> ind p fug'-Befehl nicht geschnappt wird, sondern andere Dateien zwar gleichen Namens, aber in anderen 
> Zweigen des Geflechts von Verzeichnissen liegend.- Ich erinnere mich, daß Sie in arbeitssparender 
> Absicht in sehr durchdachter Weise die Verwaltung Ihrer  den Datenbankbetrieb regelnden Dateien 
> organisiert haben.
> 
> Wie könnte man das beheben, was Ihnen passiert? Die Datei abc.?pt und fug.?pi in das gleiche 
> Verzeichnis legen, in dem Ihre Datenbank-Dateien fug*.?ld liegen. Denn ab dann, so behaupte ich 
> jedenfalls, passiert Ihnen das garantiert nie, was Ihnen bisher gelegentlich passiert ist.

Ich fürchte, dass das so die Situation nicht trifft.
Alle Daten sind in einem Virtuellen PC (Parallels Desktop) enthalten uns hatten (außer zu meinem Mac Host) keine Netzverbindung. Meine Vermutung geht dahin, dass es subtile Differenzen zwischen der Laufzeitumgebung bei F7 einerseits und der Indexierung andererseits gibt (z.B. andere Variablen besetzt), ich kenne mich aber nicht gut genug aus, um im Quellcode auf die Suche zu gehen.

Mit freundlichen Grüßen
Thomas Fischer





Mehr Informationen über die Mailingliste Allegro