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;
이게 소슨데여..
어떻게 해야할까요..
도와주세요.. 제발~~