디비그리드에 있는 레코드를 삭제 하려다가 취소하면 그상태그대로 두고
삭제모드만 빠져나와야하는데 빠져나오긴하는데 삭제를 해버려서요...
procedure TLakeF.TmBeforeDelete(DataSet: TDataSet);
begin
..........
if MessageDlg('서버에 Up Load된 "' + fname + '"파일도 삭제하여야 합니다.' + #13#10+
'삭제할까요?',mtConfirmation,[mbYes,mbNo],0) = mrNo then
begin
Tm.Cancel; -> 이렇게 하면 안되나요?
Exit;
end;
........
end;
파일은 그대도 있는데 문서정보(현재 작업테이블)를 삭제해버려요..
어떻게 해야 하는지 방법좀 알려주세요...........
sqltxt := 'delete from ....';
query1.sql.clear;
query1.sql.add(sqltxt);
query1.execsql;
이렇게 하시면 안되구요..
query1.cachedupdates := true;
상태에서
Tupdatesql을 통하여 query1.delete;하신다음에
query1.applyupdates; //삭제된것 적용
query1.cancelupdates; //삭제된것 취소
이런식으로 해야됩니다. 물론 일괄 적용할때 에러가 나거나 문제가 발생하면
DB.STARTTRANSACTION;
DB.COMMIT;
DB.ROLLBACK;
등을 사용해서 관리해야하구요..
데이터베이스에 관련된 책자를 참조해서 해보십시오.