Einzelnen Beitrag anzeigen

Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#1

DBGrid nur markierte Datensätze löschen

  Alt 19. Apr 2005, 10:34
Datenbank: FB • Zugriff über: IBX
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
  Mit Zitat antworten Zitat