Beim Import/Abgleich mit einem MySQL Server kann es vorkommen, dass der Import nicht erfolgreich durchgeführt werden kann. Nach Auswahl der zu importierenden/abzugleichenden Tabelle zeigt der Import-Assistent die folgende Hinweis-Meldung an:
Es ist ein Fehler aufgetreten.Die Datenbankschnittstelle meldet:Die Datenbank konnte nicht geöffnet werden.
Auf dem gleichen System ist der Zugriff auf die MySQL Datenbank jedoch problemlos möglich?
Aufschluss über dieses Verhalten liefert eine Debwin Log-Datei, in welcher der genaue Fehler protokolliert ist. Die Ausgaben sehen wie folgt aus:
…cmda09:11:38:57.966 00000B28 server: (ODBC) database: (MySQL Server) table: („country“)cmda09:11:38:57.966 00000B28 CDAOdbc::OpenConnection()->:SELECT * FROM „country“ cmda09:11:38:57.982 00000B28 SQL_SCROLL_OPTIONS = 00000011 (nResult=0)cmda09:11:38:57.982 00000B28 CDAOdbc::OpenConnection()->Excecute…cmda09:11:38:57.982 00000B28 SAException (42000 [MySQL][ODBC 5.3(a) Driver][mysqld-5.6.15-enterprise-commercial-advanced]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use necmda09:ar ‚„country“‘ at line 1)cmda09:11:38:57.982 00000B28 CDAOdbc::CloseDatabase…
Wie zu erkennen ist, schlägt die Abfrage der Datensätze der Tabelle „country“ fehl. Ursache hierfür ist die Syntax der SQL-Abfrage, welche der cRM an den ODBC-Treiber übergibt:
SELECT * FROM "country"
Der MySQL Server kann mit den doppelten Anführungszeichen " nicht umgehen und erwartet an dieser Stelle sogenannte Backticks (`). D.h. die von MySQL erwartete Abfrage müsste wie folgt aussehen:
SELECT * FROM `country`
Um den Zugriff dennoch zu erhalten, muss in der Konfiguration des ODBC-Treibers die Eigenschaft „Initial Statement“ mit folgenden Inhalt gefüllt werden:
SET SESSION sql_mode='ansi'
Anschließend kann die SQL Abfrage an den ODBC-Treiber korrekt übergeben und interpretiert werden, so dass dem Import/Abgleich nichts mehr im Wege steht.