![]() |
Datenbank: mysql • Version: 5.7 • Zugriff über: Ado
Problem mit Post
Hallo Wenn ich mein tquery auf insert setze und anschließßend auf post gehe dann kommt diese Fehlermeldung
--------------------------- Debugger Exception Notification --------------------------- Project Project1.exe raised exception class EDatabaseError with message 'Die zum Aktualisieren angegebene Zeile wurde nicht gefunden. Einige Werte wurden seit dem letzten Lesen ggf. geändert'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- Aber nur wenn ich nicht geändert habe. Wie kann ich abfragen ob etwas geändert wurde? |
AW: Problem mit Post
Hat die Tabelle irgendwelche datenbankseitig veränderliche Felder? (Autoinc, Trigger usw.)
Vermutlich hast du vergessen der Query-Komponente das ID-Feld zu nennen und selber war sie nicht dazu in der Lage ... drum vergleicht die Komponente eventuell den gesamten Datensatz oder zumindestens das/eines der veränderten Felder, weswegen dann natürlich der Datensatz weg ist, für die Query-Komponente. Auch wenn das ID-Feld serverseitig verändert wird, sollte "RefrehAfterPost" aktiv sein, um den veränderten Wert zu erhalten. |
AW: Problem mit Post
Ja das Feld ID ist Primery Key und auto inc. Wie sage ich es denn der Query komponente?
|
AW: Problem mit Post
Habs jetz so gelöst. :)
jedesmal wenn ich die datenbank auf edit setze ändert er ein Field mit diesem Code dadurch kommt der fehler jetz nicht mehr
Delphi-Quellcode:
clientdataset1.FieldByName('aenderung').AsString:='0';
i := 1 + Random(100); clientdataset1.FieldByName('aenderung').AsString:=inttostr(strtoint(clientdataset1.FieldValues['aenderung'])+i); |
AW: Problem mit Post
k.A. ... gibt es an dem Query irgendwo sowas wie OID?
PS:
Delphi-Quellcode:
ClientDataSet1.FieldByName('aenderung').AsString := '0';
i := 1 + Random(100); ClientDataSet1.FieldByName('aenderung').AsString := IntToStr(StrToInt(ClientDataSet1.FieldValues['aenderung']) + i);
Delphi-Quellcode:
ClientDataSet1.FieldByName('aenderung').AsInteger := 0;
i := 1 + Random(100); ClientDataSet1.FieldByName('aenderung').AsInteger := ClientDataSet1.FieldByName['aenderung'].AsInteger + i;
Delphi-Quellcode:
//ClientDataSet1.FieldByName('aenderung').AsInteger := 0;
i := 1 + Random(100); ClientDataSet1.FieldByName('aenderung').AsInteger := 0 + i;
Delphi-Quellcode:
:gruebel:
//ClientDataSet1.FieldByName('aenderung').AsInteger := 0;
ClientDataSet1.FieldByName('aenderung').AsInteger := 1 + Random(100); |
AW: Problem mit Post
Damit ein insert oder edit einer Query richtig funktionieren kann, ist es zwingend notwendig die eindeutige ID (AutoInc) mit im select zu haben, ansonsten wird der Datensatz in der Datenbank nicht gefunden.
Mit ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz