Hallo,
ich möchte nur die markierten Datensätze aus einem DBGrid löschen. Dazu verwende ich folgenden Code:
Delphi-Quellcode:
while MyGrid.SelectedRows.Count>0 do
begin
if MyDataSet.BookmarkValid(pointer(MyGrid.SelectedRows.Items[0]))then
begin
MyDataSet.GotoBookmark(pointer(MyGrid.SelectedRows.Items[0]));
MyDataSet.Delete;
end;
MyGrid.SelectedRows.Refresh;
end;
Das dumme daran ist nur, dass MyGrid.SelectedRows.Count trotz des Refresh nicht ändert.
Irgendwann kommt dann immer eine
Exception 'Datensatz nicht gefunden', was auch logisch ist da MyGrid.SelectedRows.Count ja nie weniger wird.
Und dieser Code funktioniert in meinem Fall genauso wenig.
Delphi-Quellcode:
for i:=0 to MyGrid.SelectedRows.Count-1 do
begin
if MyDataSet.BookmarkValid(pointer(MyGrid.SelectedRows.Items[i]))then
begin
MyDataSet.GotoBookmark(pointer(MyGrid.SelectedRows.Items[i]));
MyDataSet.Delete;
end;
MyGrid.SelectedRows.Refresh;
end;
ciao Martin