[+/-]
In diesem Abschnitt geht es um häufig benutzte Abfragen und Funktionalitätsbereiche in MySQL und ihre Verwendung mit MyODBC.
Den Wert einer Spalte, die nach einer
INSERT
-Anweisung
AUTO_INCREMENT
verwendet, kann man auf
mehrere Weisen beschaffen. Um ihn unmittelbar nach dem
INSERT
abzurufen, verwendet man eine
SELECT
-Anfrage mit der
LAST_INSERT_ID()
-Funktion.
Mit MyODBC würden Sie hier zwei Anweisungen absetzen: die
INSERT
-Anweisung und die
SELECT
-Anfrage, die Ihnen den
Auto-Increment-Wert liefert.
INSERT INTO tbl (auto,text) VALUES(NULL,'text'); SELECT LAST_INSERT_ID();
Wenn Sie den Wert nicht für Ihre Anwendung, aber für ein
anderes INSERT
benötigen, können Sie das
Ganze auch mit folgenden beiden Anweisungen erledigen:
INSERT INTO tbl (auto,text) VALUES(NULL,'text'); INSERT INTO tbl2 (id,text) VALUES(LAST_INSERT_ID(),'text');
Manche ODBC-Anwendungen (darunter Delphi und Access) haben Schwierigkeiten, mit den oben gezeigten Methoden den Auto-Increment-Wert abzurufen. Hier bietet sich als Alternative folgende Anweisung an:
SELECT * FROM tbl WHERE auto IS NULL;
Siehe Abschnitt 24.2.13.3, „Wie erhalte ich die eindeutige Kennung für die letzte eingefügte Zeile?“.
MyODBC 3.51 bietet zwar dynamic
cursor
-Unterstützung, aber nach Voreinstellung sind
dynamische Cursors nicht aktiviert. In Windows schalten Sie
diese Funktion ein, indem Sie das Kontrollkästchen
Dynamische Cursor aktivieren
im
ODBC-Datenquellen-Administrator markieren.
Auf anderen Plattformen schalten Sie dynamische Cursors ein,
indem Sie zu dem Wert von OPTION
den Wert
32
addieren, wenn Sie den DSN anlegen.
Der MyODBC-Treiber wurde auf eine sehr schnelle Leistung hin optimiert. Wenn Sie Probleme mit der Leistung von MyODBC haben oder viele Plattenzugriffe für einfache Anfragen auftreten, sollten Sie mehrere Dinge überprüfen:
Stellen Sie sicher, dass ODBC Tracing
nicht eingeschaltet ist. Wenn das Tracing aktiv ist,
zeichnet der ODBC-Manager massenhaft Daten in der
Tracing-Datei auf. Unter Windows können Sie dies prüfen
und das Tracing gegebenenfalls deaktivieren, indem Sie die
Ablaufverfolgung im
ODBC-Datenquellen-Administrator ausschalten. In Mac OS X
überprüfen Sie das Tracing-Feld
des ODBC Administrators. Siehe auch
Abschnitt 25.1.3.8, „Erzeugen einer ODBC-Trace-Datei“.
Vergewissern Sie sich, dass Sie die Standardversion und nicht die Debugging-Version des Treibers benutzen. In der Debugging-Version werden zusätzliche Überprüfungen und Berichte ausgeführt.
Deaktivieren Sie die Trace- und Query-Logs des MyODBC-Treibers. Da diese für jeden DSN aktiviert sind, müssen Sie darauf achten, nur den DSN zu bearbeiten, den Sie in Ihrer Anwendung benutzen. Unter Windows deaktivieren Sie die MyODBC- und Query-Logs, indem Sie die DSN-Konfiguration modifizieren. Unter Mac OS X und Unix müssen Sie dafür sorgen, dass der Treiber-Trace (Optionswert 4) und das Anfragen-Logging (Optionswert 524288) ausgeschaltet sind.
Wie Sie in Microsoft Windows ein Anfragen-Timeout einstellen, wenn Anfragen über eine ODBC-Verbindung ausgeführt werden, erfahren Sie in folgendem Artikel der Microsoft Knowledge Base: http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B153756.
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.