if (not qry_master.Active) or (qry_master.isempty) then Exit; if MessageBox(Handle, '确实想删除记录吗?', '询问', MB_ICONQUESTION+MB_YESNO)= mrYes then try if qry_detail.RecordCount>0 then if MessageBox(Handle, '从表有数据,将被删除,是否继续?', '询问', MB_ICONQUESTION+MB_YESNO)= mrYes then begin for i:=1 to qry_detail.RecordCount do qry_detail.Delete; qry_detail.UpdateBatch; end else exit; qry_master.Delete; except MessageBox(Handle,'删除数据时出错!','错误',MB_ICONERROR); end;
做在一個事務中就可
if MessageBox(Handle, '确实想删除记录吗?', '询问', MB_ICONQUESTION+MB_YESNO)= mrYes then
try
if qry_detail.RecordCount>0 then
if MessageBox(Handle, '从表有数据,将被删除,是否继续?', '询问', MB_ICONQUESTION+MB_YESNO)= mrYes then
begin
for i:=1 to qry_detail.RecordCount do
qry_detail.Delete;
qry_detail.UpdateBatch;
end
else
exit;
qry_master.Delete;
except
MessageBox(Handle,'删除数据时出错!','错误',MB_ICONERROR);
end;