Im folgenden Abschnitt geht es um häufige Fehler und ihre Behebung oder Alternativlösungen. Wenn Sie danach immer noch Probleme haben, nutzen Sie bitte die MyODBC-Mailingliste unter Abschnitt 25.1.7.1, „MyODBC: Community-Support“.
Viele Probleme lassen sich bereits durch einen Upgrade der MyODBC-Treiber auf die neueste verfügbare Version beheben. Unter Windows müssen Sie auch darauf achten, immer die neueste Version der Microsoft Data Access Components (MDAC) zu installieren.
Questions
25.1.6.3.1: Sind MyODBC 2.50-Anwendungen kompatibel mit MyODBC 3.51?
25.1.6.3.2: Bei Transaktionen kommt es gelegentlich zu folgendem Fehler:
Transactions are not enabled
25.1.6.3.3: Der folgende Fehler tritt bei der Übermittlung einer Anfrage auf:
Cursor not found
25.1.6.3.4:
Access meldet Datensätze als
#DELETED#
, wenn Einträge in
verknüpften Tabellen eingefügt oder geändert werden.
25.1.6.3.5: Wie gehe ich mit Write Conflicts oder Row Location-Fehlern um?
25.1.6.3.6:
Beim Exportieren von Daten aus Access 97 in MySQL wird ein
Syntax Error
gemeldet.
25.1.6.3.7:
Beim Exportieren von Daten aus Microsoft DTS in MySQL wird
ein Syntax Error
gemeldet.
25.1.6.3.8: Wenn Sie ODBC.NET mit MyODBC benutzen, wird beim Abrufen von leeren Strings (Strings der Länge 0) die SQL_NO_DATA-Exception ausgelöst.
25.1.6.3.9:
Wenn Sie SELECT COUNT(*) FROM
in Visual
Basic und ASP benutzen, wird ein Fehler gemeldet.
tbl_name
25.1.6.3.10:
Bei Verwendung der ADO-Methode
AppendChunk()
oder
GetChunk()
wird der Fehler
Multiple-step operation generated errors. Check
each status value
gemeldet.
25.1.6.3.11:
Access gibt beim Bearbeiten von Einträgen einer
verknüpften Tabelle Another user had modified
the record that you have modified
zurück.
Questions and Answers
25.1.6.3.1: Sind MyODBC 2.50-Anwendungen kompatibel mit MyODBC 3.51?
Anwendungen, die auf MyODBC 2.50 basieren, müssten auch mit MyODBC 3.51 und späteren Versionen gut funktionieren. Wenn Sie feststellen, dass etwas mit der neuesten Version von MyODBC nicht mehr funktioniert, was mit einer älteren Version noch geklappt hat, schicken Sie uns bitte einen Bugreport. Siehe hierzu Abschnitt 25.1.7.2, „Melden von MyODBC-Problemen und -Fehlern“.
25.1.6.3.2: Bei Transaktionen kommt es gelegentlich zu folgendem Fehler:
Transactions are not enabled
Dies bedeutet, dass Sie auf einer MySQL-Tabelle, die keine
Transaktionen unterstützt, eine Transaktion versuchen.
Transaktionen werden in MySQL nur von den Speicher-Engines
InnoDB
und BDB
unterstützt.
Bitte prüfen Sie Folgendes:
Vergewissern Sie sich, dass Ihr MySQL Server eine
transaktionsfähige Speicher-Engine verwendet.
SHOW ENGINES
zeigt Ihnen die Liste
der verfügbaren Engines an.
Vergewissern Sie sich, dass die Tabellen, die Sie zu aktualisieren versuchen, eine transaktionsfähige Speicher-Engine verwenden.
Achten Sie darauf, dass im DSN nicht die Option
disable transactions
eingeschaltet
ist.
25.1.6.3.3: Der folgende Fehler tritt bei der Übermittlung einer Anfrage auf:
Cursor not found
Dies bedeutet, dass die Anwendung die ältere Version MyODBC 2.50 verwendet und den Cursor-Namen nicht explizit mit SQLSetCursorName gesetzt hat. Dies beheben Sie durch einen Upgrade auf die Version MyODBC 3.51.
25.1.6.3.4:
Access meldet Datensätze als
#DELETED#
, wenn Einträge in
verknüpften Tabellen eingefügt oder geändert werden.
Wenn die eingefügten oder geänderten Datensätze als
#DELETED#
erscheinen:
Wenn Sie Access 2000 benutzen, installieren Sie bitte
die neueste Version (2.6 oder höher) der Microsoft
MDAC (Microsoft Data Access
Components
) von
http://www.microsoft.com/data/. Darin
wird ein Access-Fehler behoben, der dazu führt, dass
bei einem Export von Daten in MySQL die Tabellen- und
Spaltennamen nicht angegeben werden. Eine andere
Möglichkeit besteht darin, auf MyODBC 2.50.33 oder
höher und auf MySQL 3.23.x oder höher aufzurüsten,
da beide gemeinsam einen Workaround für dieses
Problem enthalten.
Außerdem sollten Sie das Microsoft Jet 4.0 Service
Pack 5 (SP5) anwenden, das unter
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114
zur Verfügung steht. Damit werden einige Fälle
behoben, bei denen Access-Zeilen als
#DELETED#
erscheinen.
Hinweis: Wenn Sie MySQL 3.22 verwenden, müssen Sie den MDAC-Patch anwenden und MyODBC 2.50.32 oder 2.50.34 (oder höher) installieren, um dieses Problem zu umgehen.
Für alle Versionen von Access müssen Sie die Option
MyODBC Return matching rows
einschalten. Für Access 2.0 sollten Sie zusätzlich
die Option Simulate ODBC 1.0
aktivieren.
Alle Tabellen, die später updatefähig sein sollen, müssen einen Timestamp enthalten.
Jede Tabelle sollte einen Primärschlüssel haben,
sonst können neue oder aktualisierte Zeilen als
#DELETED#
erscheinen.
Verwenden Sie nur
DOUBLE
-Float-Felder. Access kann
Float-Werte mit einfacher Genauigkeit nicht
vergleichen. Dies führt dazu, dass neue oder
aktualisierte Zeilen als #DELETED#
erscheinen oder nicht zu finden sind.
Wenn Sie MyODBC zur Verknüpfung einer Tabelle
benutzen, die eine BIGINT
-Spalte
hat, werden die Ergebnisse als
#DELETED
angezeigt. Hierfür gibt
es folgenden Workaround:
Richten Sie eine zusätzliche Dummy-Spalte mit dem
Datentyp TIMESTAMP
ein.
Wählen Sie im Verbindungsdialog vom ODBC DSN
Administrator die Option Change BIGINT
columns to INT
.
Löschen Sie die Tabellenverknüpfung von Access und erstellen Sie sie neu.
Alte Einträge werden weiterhin als
#DELETED#
angezeigt, aber neue oder
geänderte erscheinen in der richtigen Form.
25.1.6.3.5: Wie gehe ich mit Write Conflicts oder Row Location-Fehlern um?
Bei folgenden Fehlern sollten Sie die Option
Return Matching Rows
im
DSN-Konfigurationsdialog einstellen oder
OPTION=2
als Verbindungsparameter
angeben:
Write Conflict. Another user has changed your data. Row cannot be located for updating. Some values may have been changed since it was last read.
25.1.6.3.6:
Beim Exportieren von Daten aus Access 97 in MySQL wird ein
Syntax Error
gemeldet.
Dieser Fehler ist spezifisch für Access 97 und MyODBC-Versionen, die älter sind als 3.51.02. Rüsten Sie auf die neueste Version des MyODBC-Treibers auf.
25.1.6.3.7:
Beim Exportieren von Daten aus Microsoft DTS in MySQL wird
ein Syntax Error
gemeldet.
Dieser Fehler tritt nur bei MySQL-Tabellen auf, in denen
die Datentypen TEXT
oder
VARCHAR
vorkommen. Rüsten Sie Ihren
MyODBC-Treiber auf die Version 3.51.02 oder höher auf.
25.1.6.3.8: Wenn Sie ODBC.NET mit MyODBC benutzen, wird beim Abrufen von leeren Strings (Strings der Länge 0) die SQL_NO_DATA-Exception ausgelöst.
Hierfür gibt es einen Patch unter http://support.microsoft.com/default.aspx?scid=kb;EN-US;q319243.
25.1.6.3.9:
Wenn Sie SELECT COUNT(*) FROM
in Visual
Basic und ASP benutzen, wird ein Fehler gemeldet.
tbl_name
Dieser Fehler tritt auf, weil der Ausdruck
COUNT(*)
einen
BIGINT
zurückliefert, mit dem ADO
nichts anfangen kann. Wählen Sie die Option
Change BIGINT columns to INT
(Optionswert 16384).
25.1.6.3.10:
Bei Verwendung der ADO-Methode
AppendChunk()
oder
GetChunk()
wird der Fehler
Multiple-step operation generated errors. Check
each status value
gemeldet.
Die Methoden GetChunk()
und
AppendChunk()
von ADO funktionieren
nicht richtig, wenn der Cursor-Standort mit
adUseServer
angegeben wird. Das beheben
Sie, indem Sie adUseClient
verwenden.
Ein einfaches Beispiel finden Sie unter http://www.dwam.net/iishelp/ado/docs/adomth02_4.htm.
25.1.6.3.11:
Access gibt beim Bearbeiten von Einträgen einer
verknüpften Tabelle Another user had modified
the record that you have modified
zurück.
Dies lässt sich meistens durch eine der folgenden Maßnahmen lösen:
Sie geben der Tabelle einen Primärschlüssel, falls sie noch keinen hat.
Sie geben der Tabelle einen Timestamp, falls sie noch keinen hat.
Sie verwenden Float-Felder nur mit doppelter Genauigkeit. Manche Programme können Floats mit einfacher Genauigkeit nicht vergleichen.
Wenn dies alles nichts hilft, legen Sie eine Logdatei für den ODBC-Manager (das Log, das Sie bekommen, wenn Sie eines von ODBCADMIN anfordern) sowie ein MyODBC-Log an. So können Sie vielleicht dem Fehler auf die Spur kommen. Anleitungen finden Sie unter Abschnitt 25.1.3.8, „Erzeugen einer ODBC-Trace-Datei“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.