SOG-Helpcenter Logo SOG Business - Software

Verwendung von Unicode in der Datenbank


SOG ERP kann durch Einstellungen dazu gebracht werden, #unicode in der Datenbank zu speichern. Ist diese Einstellung vorgenommen und die Datenbank ggf. konvertiert worden, können alle Zeichen des Unicode-Zeichenvorrates in der Datenbank gespeichert werden siehe auch: https://de.wikipedia.org/wiki/Unicode

Beachten Sie, dass in diesem Fall auch alle externen Schnittstellen in der Lage sein müssen, Unicode z. B. in Form von UTF8-Dateien zu verarbeiten. Anderenfalls würde das Betriebssystem Unicode-Zeichen bei der Übergabe in Nicht-Unicode-Zeichen konvertieren. Externe Schnittstellen für die Verwendung von Unicode-Zeichen müssen ggf. eingestellt oder parametrisiert werden.

 

Als externe Schnittstellen gelten:

  • PDF-Wandlung/ Belegdruck

  • SSAS

  • Jede Fibu

  • DSI Shop

  • jeder externe Shop

  • SGS und andere Versandlogistiker

  • jeder XMLEXPJOB

  • jeder Export von CSV-Dateien aus der Suche (etc.)

Im Umfeld von SOGForms (PDF-Wandlung bzw. Belegdruck) ist zu prüfen, ob der verwendete Font die gewünschten Eigenschaften besitzt und alle benötigte UNICODE-Zeichen abbilden kann. Gerade im Hinblick auf asiatische Schriftzeichen (z. B. Chinesisch tranditionell bzw. vereinfacht) sind die klassischen Windows Fonts (z. B. Arial) nur bedingt nutzbar, hierfür sollten entsprechend angepasste Fonts (z. B. Arial Unicode MS) verwendet werden.

  • Font identifizieren der die gewünschten Eigenschaften hat (ggf. muss der Kunden diesen kaufen, wenn er nicht frei zugänglich)

  • Auf den Servern und Clients installieren

  • Integration in den SOGForms Formularen

 

 

Umstellung der Datenbank auf Unicode


Durch Angabe der Option "unicodedb" als Parameter 11 im OleDb-String der Datenbank, wird die Verarbeitung der Datenbank als Unicode-Datenbank eingeschaltet.
Beispiel:

set OleDbGlobal=sqlsrv|servername|dbname|WIN|||||||unicodedb

Konvertierung einer Datenbank


Nach Umstellung der OleDb-Variablen (und Registrierung der Variablen) reagiert das SOG ERP Datenbankmodell mit folgenden Änderungen:

  • Alle "normalen Textfelder" der Datenbank werden statt mit dem Datentyp "char" nun mit dem Datentyp "nchar", bzw. an Stelle von "varchar" nun mit "nvarchar", angelegt.

  • Bei Key-Felder wird versucht zu analysieren, ob diese alphanumerische Inhalte enthalten können. Ist dies der Fall, wird ebenfalls auf "nchar" bzw "nvarchar" gewechselt.

  • Die automatische Grenze zur Umschaltung von Datenfeldern von "char" auf "nvarchar" wechselt von 100 auf 30 Zeichen.

Vor der Konvertierung sollte eine Datensicherung durchgeführt werden.

Die Umstellung der Datenbank sollte nach folgendem Fahrplan vorgenommen werden:

  • Datensicherung durchführen

  • mkdir {SEQVERZEICHNIS}

  • mkdir {SEQVERZEICHNIS}_done

  • sogdbunload -unloadall {SEQVERZEICHNIS}

  • Löschen und neu Anlegen der Datenbank, oder entfernen aller Tabellen und Views, z. B. mit sogsql sql\beispiele\mss\TSQL-Bsp22-TruncateAllTables.sql

  • Umstellen der OleDbGlobal Variablen

  • regenv bzw. hhrel damit alle Clients diese Veränderung bekommen

  • sogerpconsole -dbcheck -norelcheck -nometa -tarfile sogsql

  • sogdbunload -loadall -move -noignoretab {SEQVERZEICHNIS}

Änderungen zur Laufzeit


SQL-Anweisungen werden zur Laufzeit automatisch dahingehend verändert, dass Textkonstante die Unicode-Zeichen enthalten, als Unicode-Textkonstanten übergeben werden. ( N'xxx' )
SQL-Parameter werden ebenfalls analysiert ob sie Unicode-Zeichen enthalten. Wenn ja, werden auch sie als nvarchar Parameter übergeben.
Ein Zeichen gilt dabei dann als Unicode-Zeichen, wenn es entweder nicht in der aktuellen Windows-Default-Codepage enthalten ist, oder wenn es nicht möglich ist, dieses Zeichen ohne Verfälschung in einem "varchar" Datenfeld der aktuellen Datenbank zu speichern.