Entwickler-Ecke
Datenbanken - MySQL ändert nur ein Feld im Datzensatz
jjturbo - Di 20.10.15 09:01
Titel: MySQL ändert nur ein Feld im Datzensatz
Moiun Forum,
ich habe hier eine Konstellation aus MySQL Datenbank, ZConnection, ZQuery, DBGrid.
1:Ich ändere in einer Zeile ein Feld, springe mit TAB weiter, ändere ein zweites Feld.
Cursor down.
2: Ich ändere wieder ein Feld. Cursor down, Cursor up, TAB zum nächsten Feld, ändere es, Cursor down.
3: Noch mal wie bei 1.
Wenn ich jetzt ein Refresh auf mein ZQuery mache, dann sehe ich das das zweite in [2] geänderte Feld nicht übernommen wurde. Kann mir jemand erklären was ich falsch mache?
Dank Euch, Gruß Oliver
baumina - Di 20.10.15 09:22
Um den Fehler näher einzugrenzen, kontrolliere die Feldinhalte z.B. in den Query-Ereignissen BeforePost und AfterPost.
jjturbo - Di 20.10.15 09:39
Wenn ich die Felder in BeforePost und AfterPost abfrage stehen schon die neu eingetragenen Werte drin.
baumina - Di 20.10.15 09:49
Aber in der Datenbank wurden die Felder nur teilweise geändert?
jjturbo - Di 20.10.15 09:50
Ja, in diesem Beispiel habe ich ca. 20 Felder, 9 und 11 werden geändert.
Aber nach dem Refresh ist wie oben in [2] beschrieben der zweite Wert nicht übernommen worden.
baumina - Di 20.10.15 09:56
Meine Frage war nach der Datenbank (zu kontrollieren mit z.B. MySQL Query Browser). Vielleicht stimmt ja der Datentyp mit den Daten nicht überein.
jjturbo - Di 20.10.15 10:07
Im MySQL Workbench sehe ich das gleiche wie in meinen DBGrid wenn ich das entsprechende Statement absetze.
baumina - Di 20.10.15 10:15
Aber innerhalb der Workbench kannst du den Feldinhalt auf den Wert setzen?
Sinspin - Di 20.10.15 12:05
Stelle sicher das vor den ausführen von Refresh der aktuelle Datensatz gepostet wird. Solltest Du Refresh ausführen solange ein Datensatz noch nicht abgesendet ist wird der verworfen.
Sollte es das nicht sein, hast Du an irgendwelchen Eingabefeldern / Gridfeldern die Aktionen ausführen wenn ein Feld geändert wird? Oder bevor der Datensatz gepostet wird? Eventuell führt so etwas en Refesh aus und verwirft damit deine Eingaben.
mandras - Di 20.10.15 20:13
Sinspin hat folgendes geschrieben : |
Solltest Du Refresh ausführen solange ein Datensatz noch nicht abgesendet ist wird der verworfen. |
Durch das Cursor up/down wird normalerweise automatisch gepostet.
Transaktionen vermute ich auch nicht als Fehlerquelle da es sich um MySQL handelt.
Vielleicht hilft die ZSQLMonitor-Komponente weiter.
Oder Zeos kann aus der Query kein korrektes Update-Statement erstellen (würde man auch mit ZSQLMonitor finden)
- für diesen Fall einmal mit ZUpdateSQL arbeiten
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 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!