Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Exception beim DB-Update (mySql) (https://www.delphipraxis.net/24097-exception-beim-db-update-mysql.html)

kico 15. Jun 2004 12:25


Exception beim DB-Update (mySql)
 
Habe folgendes Problem:

Eine lokale MySql DB und eine im Netz online. Jetzt habe ich mir ein kleines Programm geschrieben, welches die DB updaten soll.
Dabei 2 Routinen, eine wenn der Datensatz online nicht vorhanden ist und eine wenn er online vorhanden und editiert werden muss.
Die Routine einen Datensatz hinzuzufügen (.append) funktioniert einwandfrei jedoch einen Datensatz editieren bringt folgendes Problem:

Normale VarChar, bzw. Integer Felder sind kein Problem. Ich benutze aber in der DB ein Feld vom Typ text.
Folgende Programmzeile verursacht eine Exception (EDatabase Error Update failed, found 0 records) beim .post:

MyOnlineTable.FieldbyName('DetailText').asstring := MyQuery2.FieldbyName('DetailText').AsString;

Das Ding funktioniert aber einwandfrei, wenn ich den Datensatz mit .append anhänge nur halt beim .edit nicht :gruebel:

Bernhard Geyer 15. Jun 2004 12:38

Re: Exception beim DB-Update (mySql)
 
Hast Du Primärschlüssel in der Datenbank/Tabelle?
Vermutlich kann das intern erzeugte SQL-Update-Commando nicht vernünftig erzeugt werden.

Auch solltest Du angeben, wie Du auf die DB zugreifst (BDE, ADO, dbExpress, native-Komponente).

kico 15. Jun 2004 18:52

Re: Exception beim DB-Update (mySql)
 
Primärschlüssel sollten nicht das Problem sein. (Hatte das ganze schon mit/ohne PS probiert). Zudem funktioniert das Ganze wenn ich einen neuen Datensatz anhänge, nur beim edit nicht.

Die Datenbanken werden nativ über die "Tools" von CoreLab (MyDAC) angesprochen.

Bernhard Geyer 16. Jun 2004 07:01

Re: Exception beim DB-Update (mySql)
 
Könntest Du mal etwas Code + Tabellenstruktur posten (Minimales Beispiel, wo dieses Problem auftritt).

kico 25. Jun 2004 09:09

Re: Exception beim DB-Update (mySql)
 
Also hab das Problem weiter eingekreist...

Wie schon geschrieben benutze ich in meiner MySQL Datenbank ein Feld vom Typ Text. So lange ich eine neue Zeile in der DB anlege (append) ist das kein Problem. Es wird automatisch die Größe meines gesamten Textes erkannt und soviel Platz in der DB dafür freigeschaufelt.

Editiere ich jetzt aber etwas an einem bestehenden Feld, so kommt mein Textfeld der MySQL Tabelle durcheinander...ich glaube es liegt daran das das Feld nicht mehr die gleiche Größe hat wie vorher.

Irgendwelche Anregungen für mich?

alcaeus 25. Jun 2004 09:25

Re: Exception beim DB-Update (mySql)
 
Anstatt den Wert zu editieren, könntest du ihn komplett auslesen, speichern, aus der DB löschen und mit Append wieder einfügen. Ist zwar nicht die allerschönste und -schnellste Lösung, aber sie müsste funktionieren. Ein Problem kriegst du evtl. wenn der Primärschlüssel Auto_Increment ist.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz