Entwickler-Ecke
Datenbanken - Fragen zu MySQL <-> Delphi
Mysterio08 - Fr 04.06.10 16:02
Titel: Fragen zu MySQL <-> Delphi
Bonjour an diesem schönen, sonnigen Freitagnachmittag!
Ich habe mit MySQL-Workbench 5.1.18 ein relationales Datenbanksystem entworfen und mit Delphi per ADO (über ODBC) verbunden. Der Datenzugriff klappt einwandfrei, Abfragen auch.
Ein paar Probleme haben sich jetzt jedoch herausgestellt:
1. Die MySQL-Datei (*.mwb-Datei) wird nicht aktualisiert. Konkret bedeutet das, dass, wenn ich Daten per INSERT hinzufüge, diese in Delphi abrufen und UPDATEn kann, jedoch im GUI von MySQL-Workbench nicht sehe. Genauso ist es, wenn ich die Tabellenstruktur mit ALTER TABLE ändere. Weshalb ist das so und wie kann ich aktualisieren?
2. Nachträglich habe ich via meinem Delphi-Programm in einer dieser Tabellen eine Spalte eingefügt, vom Typ LONGTEXT, weil MEMO nicht funktionierte. CHAR wird mir in diesem Feld nicht ausreichen, ich brauche schon ca. 500 Zeichen, wie viel kann LONGTEXT aufnehmen? Ist er deckungsgleich mit MEMO (also 65535 Zeichen)? Was wäre die Alternative? Des Weiteren möchte ich diese Spalte gerne nach vorne verschieben, also zuerst ID, dann Zweite Spalte und dann Meine Spalte vom Typ LONGTEXT, weil ja die mit ADD angefügten Spalten immer ganz hinten drankommen.
3. In diesem Feld vom Typ LONGTEXT kann ich keine Daten einfügen, ich habe es schon mehrfach mit INSERT versucht, jedoch wird immer nur das Wort (Memo) eingefügt, obwohl ich das nicht beabsichtige. Warum?
mfg. Mysterio08
Mysterio08 - So 06.06.10 10:53
Ich habe mittlerweile Fortschritte erzielen können.
Also Nummer eins konnte ich lösen: Man muss, wenn man MySQL-Workbench benutzt, die Datenbank manuell darüber aktualisieren ("Database" -> "Reverse Engineer").
Zur Frage zwei bezüglich der Felderverschiebung in Tabellen habe im Referenzhandbuch einen interessanten und funktionierenden Eintrag gefunden:
Klick mich [
http://dev.mysql.com/doc/refman/5.1/de/change-column-order.html]
Auch bei dem "(MEMO)"-Problem habe ich eine Lösung gefunden, allerdings eine, welche mich nicht besondern zufrieden stellt: Im DBGrid können MEMO- oder TEXTfelder nicht angezeigt werden - was eigentlich verständlich ist, wenn man mal von 60000 Zeichen ausgeht...
Also habe ich jetzt einfach mal ein DBMemo genommen und siehe da ... es wird korrekt angezeigt! Nur, wie gesagt, kann ich die Lösung so nicht verwenden, ich dachte ich kann alles schön in einem DBGrid anzeigen, insbesondere wegen der optischen Oberfläche.
Edit: Ich konnte jetzt auch das "(MEMO)"-Problem lösen,
dieser Link [
http://delphi.about.com/library/weekly/aa030105a.htm] hat mir geholfen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!