Einzelnen Beitrag anzeigen

hirsch

Registriert seit: 29. Jan 2008
Ort: Tuttlingen
88 Beiträge
 
Delphi 2007 Professional
 
#1

"MySql:CDS: Die Änderungen müssen vor der Aktualisierun

  Alt 17. Jul 2008, 08:58
Datenbank: MySql • Version: 5 • Zugriff über: DBX
Liebe Spezialisten,
"CDS: Die Änderungen müssen vor der Aktualisierung der Daten übernommen werden."
Diese Fehlermeldung kommt sporadisch beim Ändern von Datensätzen.
Also, es sieht so aus, dass bei ca 100 Datensätzen eine inhaltliche Änderung in einer Schleife funktioniert. Ich kontrolliere das dann auch gleich in der Tabelle. Wenn aber der o.G. Fehler ein einziges mal erscheint, dann kann der Datensatz nicht mehr geändert werden, d.h. wenn ich dann mein kleines Proggi zu mache und wieder öffne, kommt der gleiche Fehler wieder, bei der gleichen Datensatz-ID.
Irgendwie scheint da was am Datensatz zu sein. Ich habe aber keine Ahnung wie ich genau diesen einen Datensatz so hin ändere, dass er mit der DBX wieder geändert werden kann.
Achja das gleiche tritt natürlich bei Löschungen auch auf.
100 mal gehtz, (damit meine ich oft, die Anzahl ist für mich unvorhersehbar) und wenn der Fehler einmal auftritt, kann ich genau diesen Satz nicht mehr löschen, andere jedoch schon. Verstehe ich nicht.
Der Code sieht so aus:
Delphi-Quellcode:
Procedure Tsich.DS_LM_loeschen(satz : Longword);
begin
  SQL_Str:='Select * from Pack where ID='+IntToStr(satz);
  Data.DataModule1.CDSLMPs.Active:=False;
  Data.DataModule1.SDSLMPs.Active:=False;
  Data.DataModule1.SDSLMPs.CommandText:=sql_str;
  Data.DataModule1.SDSLMPs.Active:=True;
  Data.DataModule1.CDSLMPs.Active:=True;
  if Data.DataModule1.CDSLMPs.RecordCount=1 then
  begin
    Data.DataModule1.CDSLMPs.Edit;
    Data.DataModule1.CDSLMPs.Delete;
    Data.DataModule1.CDSLMPs.ApplyUpdates(-1); //<-kommt manchmal hier
  end
  else showmessage ('bei '+intToStr(satz)+'stimmt was nicht! Nur '+intToStr(Data.DataModule1.CDSLMPs.RecordCount)+' Datensätze');
end;
Also ich hab keinen Plan, dsInsert, dsEdit hab ich auch schon abgefragt, und die würden soweit schon passen (was ja auch ganz oft funktioniert).
Vielen Dank für Ihre Hilfe.
Wolfgang Hirsch
  Mit Zitat antworten Zitat