// 아래는 제가 실무에서 사용하고 있는 함수 입니다.
// 실제 내용은 조금 복잡하지만 간단하게 정리하여 올립니다.
// DBGrid의 선택된 행 삭제하기
// DBGrid와 연결된 Dataset이 TQuery이고 TUpdateSQL이 연결되어 있는경우
procedure GfDeleteSelectRows(Grid:TDBGrid);
var
i : Integer;
begin
try
Grid.DataSource.DataSet.DisableControls;
for i:=0 to Grid.SelectedRows.count -1 do
Begin
Grid.DataSource.Dataset.BookMark := Grid.SelectedRows.Items[i];
Grid.DataSource.Dataset.Delete;
end;
try
if TQuery(Grid.DataSource.Dataset).CachedUpdates then
TQuery(Grid.DataSource.Dataset).ApplyUpdates
else
TQuery(Grid.DataSource.Dataset).Post;
except
on E:Exception do
ShowMessage(E.Message);
end;
finally
Grid.SelectedRows.Clear;
Grid.DataSource.DataSet.EnableControls;
end;
end;
나사 님이 쓰신 글 :
: 우선 전 DB 프로그램을 첨으로 해봅니다.
: 아래와 같이 하면 테이블안의 레코드 전체가 삭제되는데
: 전 DBGrid 에서 현재 Select 되어 있는 행만 삭제하고
: 싶습니다.
: DB 프로그램이 첨이라 그런지 좀 어렵습니다.
: DB는 오라클이며 델파이5.0을 사용하고 OS는 2000pro 입니다.
:
:
: with wwQRSel do begin
: Close;
: Sql.Clear;
: Sql.Add('Delete FROM Table');
: ExecSQL;
:
: end;
:
: 도움 부탁드리겠습니다. 좋은 하루들 되시길 바랍니다.
|