polnischer CC - deutsche SQL DB

18. November 2016 09:51

Hallo,

wir müssen gerade einen classic Client auf einem polnischen System anbinden. Die DB ist eine deutsche SQL DB. Das ganze wird gerade auf einem Testsystem durchgespielt. Ich würde jetzt gerne verstehen, wo es da zu Problemen kommt, bzw. kommen kann. Die Oberfläche ist ins polnische Übersetzt.

Wenn ich den polnischen CC starte, bekomme ich eine Fehlermeldung, das auf meinem System keine passende Codepage zur Datenbank vorhanden ist. Ich kann den Client aber trotzdem starten. Das in CODE Feldern und in Primärschlüsseln keine Sonderzeichen stehen sollten, weiß ich mittlerweile. Grundsätzlich soll über diesen polnischen Client nur Adressdaten und Textfelder gepflegt werden, so dass die polnischen Texte von einem Muttersprachler gepflegt werden können.

Kann mir jemand in ein paar Sätzen erklären, was ich beachten muss? Ich würde gerne die Probleme verstehen um das Thema hier weiter voran zu bringen.

VG

Re: polnischer CC - deutsche SQL DB

18. November 2016 15:43

Das Problem ist, dass eure NAV-Datenbank mit einer westeuropäischen Codepage (OEM850 bzw. ISO8859-1) eingerichtet wurde, der polnische NAV-Client jedoch auf einem Betriebssystem mit ISO8859-2 läuft.
Normalerweise ist die NAV-Datenbank mit dem Kennzeichen "Zeichensatz prüfen" bzw. "Zeichensatz validieren" eingerichtet (Datei -> Datenbank -> Ändern -> Sortierung).
Damit man nun mit einem polnischen Betriebssystem auf diese Datenbank zugreifen kann, muss das Kennzeichen entfernt werden.
Dadurch würde es aber möglich, landesspezifische Großbuchstaben in ein Code-Feld einzutragen, welche in einer anderen Codepage einen Kleinbuchstaben repräsentieren.
Dies könnte im schlimmsten Fall dazu führen, dass eure Datenbank zerschossen wird.

Ich stand vor ein paar Jahren vor exakt dergleichen Herausforderung.
Polnischer Client muss in deutsche Datenbank schreiben können.
Da Latin-2 (ISO8859-2) alle wichtigen westeuropäischen Zeichen (ÄÖÜäöü߀) an exakt gleicher Stelle in der Zeichentabelle enthält, konnten wir das Häkchen bei "Zeichensatz validieren" herausnehmen.
Um sicherzustellen, dass garantiert nur zulässige Zeichen in Code-Felder eingetragen werden können, haben wir in der Codeunit 1 eine Funktion "MakeCode" eingefügt, welche aus dem eingegebenen Text alle Zeichen eliminiert, welche eine Position > 127 in der Zeichentabelle haben.
Somit können nur noch Zeichen des sogenannten ASCII-7bit-Zeichensatzes eingegeben werden, welcher in allen heute gängigen Zeichensätzen (ASCII [OEMxxx], ANSI [ISO8859-x], Unicode, Windows-xxxx) identisch ist.

Diese Lösung ist seit 2012 bis heute erfolgreich im Einsatz und es hat noch kein Problem mit den unterschiedlichen Zeichensätzen gegeben.

Einziger Haken: ISO8859-2 kennt nicht die bei uns so beliebten Zeichen "²" (Quadrat) bzw. "³" (Kubik), was jedoch kein Problem ist, da man sie ja auch mit den Buchstaben "q" bzw. "c" darstellen kann, z. B. qm bzw. ccm.

Re: polnischer CC - deutsche SQL DB

18. November 2016 16:12

Hallo Timo,

vielen Dank für die ausführliche Erklärung. Das hab ich verstanden und die Lösungsmöglichkeit gebe ich mal hier weiter. Vielleicht hilft uns das ja auch.

Noch eine Frage: In einer neueren Version wird Dynamics ja unicodefähig. Wir stellen demnächst auf 2016 oder 2017 um. Das alleine wird aber vermutlich nicht reichen, oder? Die Datenbank muss vermutlich auch konvertiert werden, oder?

VG

Re: polnischer CC - deutsche SQL DB

19. November 2016 00:09

speerwerfer hat geschrieben: Die Datenbank muss vermutlich auch konvertiert werden, oder?

Die Unicodekonvertierung macht die Updateroutine auf NAV 2013 automatisch, das war die erste Version mit Unicodesupport. Dieser Schritt muss immer zuerst erfolgen, von da kann man dann weiter auf NAV 2016/17 updaten.
Upgrading to Microsoft Dynamics NAV 2016