Zum Zwecke der Überprüfung der Datenbankverbindung existiert eine Datenbanktabelle "dbcheck". Diese Tabelle wird zum Zeitpunkt der Erstellung der Datenbank erzeugt, und mit Werten gefüllt. Die geladenen Werte können Sie dem SQL Script "sql\dbcvalue_tab.sql" entnehmen.
Der Fehler "Decimal-Abweichung festgestellt" tritt auf, wenn beim Starten von SOGActiveSkin, bei der Überprüfung der Datenbankverbindung festgestellt wird, dass die aus der Datenbank gelesenen Daten nicht mit den erwarteten Daten übereinstimmen.
Die Ursache des Problems kann vielfältig sein.
Wurde die Datenbank neu erstellt, oder aus einer Datensicherung wieder hergestellt, könnte es sein, dass die Werte in die Tabelle "dbcheck" falsch geladen wurden. Bitte kontrollieren Sie den Inhalt von "dbcheck", und vergleichen diesen mit dem Script "sql\dbcvalue_tab.sql". Sollte Sie Abweichungen feststellen, sollten Sie den gsamten Ladevorgang der Datenbank wiederholen, da auch in anderen Tabellen Dezimalfelder benutzt werden, und diese mit hoher Wahrscheinlichkeit ebenfalls eine falschen Inhalt bekommen haben.
Tritt das Problem im Zusammenhang mit einer Clientinstallation unter Informix auf, kann es folgende Ursache haben:
Bei Informix gibt es eine Abhängigkeit zwschen der aktuellen "Culture-Info" und der Informix-Variablen "DBMONEY".
Die "Culture-info" wird während der Installation des Betriebssystems eingestellt, kann aber durch Setzen der Variablen "HHLANG" (u.A.) für einen Prozess manuell verändert werden. Diese "Culture-Info" legt dabei fest, wie Dezimalzahlen für den Benutzer auf der Maske dargestellt werden.
Intern verwendet Informix beim Abrufen von Daten aber fälschlicherweise nicht die CultureInfo, sondern den aktuellen Inhalt der Variablen "DBMONEY" zur Darstellung des Kommas, und wandelt den dabei erhaltenen Text offensichtlich anschließend unter Verwendung der "Culture-Info" in eine Dezimalzahl. Passt "DBMONEY" dabei nicht zur aktuellen "Culture-Info", so kommt es zu einer "Dezimal-Abweichung" die sich vor allem durch das Fehlen der Kommaposition innerhalb der erhaltenen Daten bemerkbar macht.
Aus diesem Grunde muss bei Verwendung von Informix die Variable "DBMONEY" immer zur aktuellen "Culture-Info" passen. Da die "Culture-Info" durch "HHLANG" verändert werden kann, müssen "DBMONEY" und "HHLANG" im gleichzeitig und passend zueinander verändert werden. Um dies sicherzustellen, werden die beiden Variablen über das SOGActiveSkin Icon gemeinsam auf definierte Werte gesetzt. Der Programmstart von SOGActiveSkin sollte immer über dieses Icon erfolgen.
Für Umgebungen, die nicht über diese Icons gestartet werden (z.B. eine Entwicklungsumgebung) sollten DBMONEY, HHLANG und aktuelle "CultureInfo" immer "aufeinander abgestimmt" sein.