AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Post

Ein Thema von Natcree · begonnen am 30. Nov 2014 · letzter Beitrag vom 1. Dez 2014
Antwort Antwort
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit Post

  Alt 30. Nov 2014, 23:44
Datenbank: mysql • Version: 5.7 • Zugriff über: Ado
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit Post

  Alt 1. Dez 2014, 00:05
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Dez 2014 um 00:09 Uhr)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Problem mit Post

  Alt 1. Dez 2014, 00:14
Ja das Feld ID ist Primery Key und auto inc. Wie sage ich es denn der Query komponente?
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Problem mit Post

  Alt 1. Dez 2014, 00:59
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);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

AW: Problem mit Post

  Alt 1. Dez 2014, 02:01
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:
//ClientDataSet1.FieldByName('aenderung').AsInteger := 0;
ClientDataSet1.FieldByName('aenderung').AsInteger := 1 + Random(100);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Dez 2014 um 02:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Problem mit Post

  Alt 1. Dez 2014, 07:18
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 TDataset.Modified kann man feststellen, ob es Änderungen im Datensatz gibt.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 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