Q&A

  • DBGrid 에서 Multi Select 하여 삭제하기...
DBGrid 에서 Multi Select 하여 데이타를 삭제하고자 합니다.



근데 한건 삭제한 후에 List index out of bounds(1) 이라는 에러가 나는군요



질답란을 다 찾아보고 고쳐볼라고 했는데 도저히 모르겠습니다.



조언을 좀 주시면 안댈까여..



procedure TMainForm.Button_DBGrid_DeleteClick(Sender: TObject);

var

i ,j: Integer;

Inst_Code : string;

Tran_Date : string;

Tran_Code : string;

RW_Flag : string;

Delete_Query_String : string;

begin

if DBGrid1.SelectedRows.Count > 0 then

begin

if Application.MessageBox('선택한 업무정보를 삭제하시겠습니까?', '삭제확인',

MB_YESNO + MB_DEFBUTTON1 + MB_IconQuestion) = mrNo then

begin

DBGrid1.SelectedRows.Clear;

exit;

end;



if not Database1.Connected then

Database1.Open;

DBGrid1.Enabled := False;

with DBGrid1.DataSource.DataSet do

for i:=0 to DBGrid1.SelectedRows.Count-1 do

begin

GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));

Inst_Code := Fields[0].AsString;

Tran_Code := Fields[1].AsString;

Tran_Date := Fields[2].AsString;

RW_Flag := Fields[3].AsString;



Delete_Query_String := '';

Delete_Query_String := 'Delete from LS_CMS_Tran_Content Where';

Delete_Query_String := Delete_Query_String + ' Inst_Code = ' + '''' + Inst_Code + '''';

Delete_Query_String := Delete_Query_String + ' AND Tran_Code = ' + '''' + Tran_Code + '''';

Delete_Query_String := Delete_Query_String + ' AND Tran_Date = ' + '''' + Tran_Date + '''';

Delete_Query_String := Delete_Query_String + ' AND RW_Flag = ' + '''' + RW_Flag + '''';



Query1.Active := False;

Query1.sql.clear;

Query1.Sql.add(Delete_Query_String);

Query1.ExecSQL;

//ShowMessage(Delete_Query_String);

end;

Database1.Close;

MessageDlg('[ ' + IntToStr(i) + ' ] 개의 업무정보가 삭제되었습니다', mtInformation, [mbOK],0);

DBGrid1.Enabled := True;

Button_Search.SetFocus();

Button_Search.Click;

end;

end;





이게 소슨데여..



어떻게 해야할까요..



도와주세요.. 제발~~

0  COMMENTS