Lade...
 

UTF8 Konvertierung

Textdaten einer Datenbank nach UTF8 konvertieren

Ab Version 4.7.0 arbeitet ClassiX mit Unicode. Für Stringdaten werden UTF8 kodiert. Das betrifft auch alle Textdaten der Datenbank.
Deshalb kann ClassiX 4.7.x nicht mehr mit älteren Datenbanken gestartet werden; die Datenbank muss konvertiert werden.
Diese Aufgabe erfüllt das Dienstprogramm cxgosuo.exe.
Alle Funktionen werden über Flag /8 mit Unterparametern aufgerufen:

Flag durchgeführte Aufgabe Beispiel Hinweise
/8 konvertiert die gesamte Datenbank (d.h. die logische Datenbank, die aus mehreren physischen Teil-Datenbanken bestehen kann) konvertiert ab Segment 2 bis zum Ende empfohlen für relativ kleine Datenbanken
/8segment s1-s2 konvertiert ab Segment s1 + 1 bis s2 (einschließlich) /8segment 799-1000   Segment 800 bis 1000 werden konvertiert für große Datenbanken kann die Konvertierung parallel in mehreren Teilprozessen durchgeführt werden
/8segment s konvertiert ab Segment s1 + 1 bis zum Ende /8segment 1000          konvertiert den Rest
/8set kennzeichnet die Datenbank als Unicode-fähig   jetzt kann ClassiX 4.7.x mit der Datenbank starten
/8reset nimmt diese Kennzeichnung zurück    
/8verify kontrolliert, ob alle Stringdaten UTF8 konform sind   Fehler werden in das ClassiX-Logfile geschrieben,
siehe Hinweis zur Fehlerkontrolle
 
/8verify s1-s2 kontrolliert ab Segment s1 + 1 bis s2 (einschließlich) /8verify 799-1000        Segment 800 bis 1000 werden verifiziert
/8verify s kontrolliert ab Segment s1 + 1 bis zum Ende /8verify 1000               verifiziert den Rest

Achtung: Die Änderung des Zeichen-Codes macht Datenbank-Indexe über String-Felder unbrauchbar.
Betroffene Indexe müssen ab- und nach der Konvertierung wieder aufgebaut werden.

Deaktivieren betroffener Indexe

  • manuell interaktiv auswählen oder
  • mit Methode DeactivateAll des Index-Managers alle auf Strings bezogenen Indizes deaktivieren  oder
  • mit Methode DeactivateSelected des Index-Managers alle die Indizes deaktivieren, die sich auf solche Datenfelder beziehen, für die tatsächlich Strings konvertiert wurden.
    Eine Statistik darüber steht am Ende des Log-Files der Konvertierung.

Reaktivieren betroffener Indexe

Betroffene Indizes müssen spätestens vor der Kontrolle mit /8verify aufgebaut sein.

Hinweise zur Fehlerkontrolle

Für die Konvertierung wird in der Datenbank über alle ClassiX-Objekte iteriert.
Die Verifikation hingegen iteriert über alle Zeichenketten in der Datenbank.
Dabei werden auch

  • die Image-Daten der Klasse CX_BITMAP gesehen (für Format .bmp steht immer BM am Beginn, bei .jpg erscheint of die Zeichenfolge exif.  → diese Fehler ignorieren!
  • die Stream-Daten aller COM-Objekte                                         → Fehler in den entsprechenden Segmenten ignorieren!
  • die komprimierten Bytes der XML-Objekte (CX_WORD_XML)       → Fehler in den entsprechenden Segmenten ignorieren!

 
Die "alten" Dictionary-Klassen CX_INDEX, CX_INDEX_CI, CX_DICTIONARY und CX_DICTIONARY_CI werden ab Version 4.7.0 nicht mehr unterstützt.
Diese Objekte werden nicht konvertiert und sind dementsprechend nach der UTF8-Konvertierung unbrauchbar!
 

CX_MAX_AS_HANDLING

Tauchen bei der Konvertierung bestimmter Segmente Probleme mit dem Address-Space auf, so sollten diese separat konvertiert werden. Reicht dies weiterhin nicht aus, so kann die Umgebungsvariable CX_MAX_AS_HANDLING auf TRUE gesetzt werden, um ein maximales Address-Space-Handling zu aktivieren.