Steht zu euren Fehlern, Sage!

Wir benutzen für unsere Buchhaltung den GS Buchhalter von Sage. Den kann man mit diversen Datenbanksystem betreiben, unter anderem auch mit MySQL 5, was wir dankend angenommen haben, da bei uns der Betrieb mit SageDB nicht möglich war.

Jedes Jahr gibt es für den GS Buchhalter ein Update, so auch beim Jahreswechsel von 2010 nach 2011. Dieses einzuspielen wird vom Sage-Support nicht nur empfohlen, sondern regelrecht gefordert. Während das die Jahre zuvor problemlos funktioniert hat war das dieses Mal nicht so. Diverse Vorgänge liegen in einen Fehler, die Buchhaltung konnte schlicht und ergreifend nicht arbeiten. Der Anruf beim Sage-Support brachte nur die Erkenntnis, dass das ein Fehler in unserem Server für verantwortlich sein müsste, das Update selbst wäre fehlerfrei (guter Witz am Rande, aber mir war zu dem Zeitpunkt nicht nach Lachen).

Nachdem ich von der Buchhaltung eine SQL-Fehlermeldung bekommen habe war mir schnell klar, wo das Problem ist und es war auch genauso schnell klar, dass es durch das Update ausgelöst wurde:

Illegal mix of collations (latin1_german1_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation ‘=’.

Da die komplette Datenbank und alle darin enthaltenen Tabellen vom Sage-Installer (bzw. vom Updater) angelegt wurden geht die falsche Kollation ganz klar zu Lasten von Sage.
Denn die Tabelle mand hat als Kollation latin1_swedish_ci, während alle darin enthaltenen Tabellen die Kollation latin1_german1_ci haben. Naja, nicht ganz alle. Nach dem Update existierten drei Tabellen, die auch latin1_swedish_ci als Kollation nutzten: sage_auf_ratenzahlung, sage_fib_buchungstexte_termine und sage_fib_buch_split. Offensichtlich hat der Updater die Kollation dieses Mal nicht explizit angegeben und daher wird die Kollation der Datenbank benutzt. Joins, die sowohl alte Tabellen als auch diese drei mit abweichender Kollation umfassen, laufen zwangsläufig in einen Fehler.

Man kann das Problem lösen, indem man die Kollation der Tabellen händisch auf latin1_german1_ci ändert, auch die Datenbank selbst sollte man ändern, denn der nächste Sage-Updater hat eventuell genau den gleichen Bug und legt wieder Tabellen ohne explizite Kollationsangabe an.

Und was schreibt der Sage-Support, explizit auf die Punkte angesprochen?

Bei dem von Ihnen benannten Sachverhalt handelt es sich nicht um einen Programmfehler.

Nein, natürlich nicht. Und die Erde ist eine Scheibe!

Ich bin Web Developer und arbeite als Lead Developer bei WIBROS. Ich liebe das Internet, Baseball, Softball, Bier und die Farbe orange. Ich hab früher mal zu viel Kaffee getrunken.

Leave a Reply

Required fields are marked *.