//这是一个按钮按下的事件,按下后删除一条记录。
//当删除到有外键关系约束的记录时,会报错,我想把这个错误捕捉到进行再处理,下面的代码一点用都没
//有!这段代码错在哪里呢?还是方法不对?谢谢。
procedure TForm5.ToolButton3Click(Sender: TObject);   
begin
    try
      adotable1.Delete;
    except
      showmessage('你不能删除这条记录,这个部门正在被别的记录所引用。');
      abort;
    else
    end;end;

解决方案 »

  1.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      try
        adotable1.Connection.BeginTrans;
        adotable1.Delete;
        adotable1.Connection.CommitTrans;
      except
        on E: Exception do
        begin
          adotable1.Connection.RollbackTrans;
          if Pos('COLUMN REFERENCE',UpperCase(E.Message))>0 then
            Application.MessageBox('你不能删除这条记录,这个部门正在被别的记录所引用!',PChar(Application.Title),MB_OK+MB_ICONERROR)
          else
            Application.MessageBox(PChar('记录删除时错误:'+#13+#10+'  '+E.Message),PChar(Application.Title),MB_OK+MB_ICONERROR);
        end;
      end;
    end;
      

  2.   

    这样:
    showmessage('你不能删除这条记录,这个部门正在被别的记录所引用。');
    //abort;