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?