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.