Einzelnen Beitrag anzeigen

hirsch

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

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

  Alt 23. Jul 2008, 13:24
Also ich bin noch nicht weiter gekommen.
Habs versucht mit einer Stored Procedure und den Parametern. Bin gegen die Wand gelaufen.
Nun bin ich wieder so weit wie vorher.
Delphi-Quellcode:
Procedure TLMobilesicherung.DS_LM_loeschen(satz : Longword);
begin
  SQL_Str:='Select * from Pack ID='+IntToStr(satz);
  Data.DataModule1.SDSLMPs.Refresh;
  Data.DataModule1.CDSLMPs.Refresh;
  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.Active:=False;
    Data.DataModule1.SDSLMPS.Active:=False;
    Data.DataModule1.SDSLMPS.CommandText:=SQL_Str;
    Data.DataModule1.SDSLMPS.Active:=True;
    Data.DataModule1.CDSLMPS.Active:=True;
    Data.DataModule1.CDSLMPS.Delete;
    Data.DataModule1.CDSLMPS.ApplyUpdates(-1); //<-hier kommt immer 'Datensatz nicht gefunden oder von anderem Benutzer geändert
  end
  else showmessage ('bei '+intToStr(satz)+'stimmt was nicht! Nur '+intToStr(Data.DataModule1.CDSLMPs.RecordCount)+' Datensätze');

end;
hab dann in die
Delphi-Quellcode:
procedure TDataModule1.CDSLMPSAfterScroll(DataSet: TDataSet);
begin
  if Data.DataModule1.CDSLMPS.UpdateStatus=usModified then
     Data.DataModule1.CDSLMPS.RefreshRecord;

end;

procedure TDataModule1.CDSLMPSBeforeScroll(DataSet: TDataSet);
begin
     showmessage(Data.DataModule1.CDSLMPS.fieldbyname('ID').asstring);
end;
geschrieben um zu sehen ob es den Datensatz wirklich nicht gibt oder ob er geändert wurde.
Er wurde soweit ich sehe nicht geändert.
Kann mir jemand helfen?
Wolfgang Hirsch
  Mit Zitat antworten Zitat