程序是这样的:try
...
 DM.DataModule1.ClientDataSet1.ApplyUpdates(0);//运行到这里出错
...except
 on Edbengineerror do
begin
exit;
end;现在我遇到的情况是程序运行到DM.DataModule1.ClientDataSet1.ApplyUpdates(0)这里时出现Edbengineerror Key violation错,但它并不转到错误处理那里去,而是出现对话框后继续执行下面的程序,请问要怎么让它出错后终止呢?出错的图片:
http://pic.comicme.net:6600/upload/2006-07-06/1152145547Error.JPG 

解决方案 »

  1.   

    http://img487.photo.163.com/decoly/9300243/1550404515.jpg
      

  2.   

    主键约束了try
    ...
     DM.DataModule1.ClientDataSet1.ApplyUpdates(0);//运行到这里出错
    ...except
    这中间省略了什么代码?
      

  3.   

    except
     on E:Exception do(将捕捉的意外的范围扩大)
    begin
    exit;
    end;
      

  4.   

    Rubi,中间省略的代码很多,主要是对另一个表进行相应的操作(dm.DataModule1.ClientDataSet3).lq19830913,试过你的方法了也不行,郁闷啊~
      

  5.   

    我也知道是SQL主键约束错误,可是这个错误为什么不按照错误处理程序走呢?我设置breakpoint调试过,出错后根本走不到on Edbengineerror do这里来.
      

  6.   

    try
     DM.DataModule1.ClientDataSet1.ApplyUpdates(0);//运行到这里出错
    except
    在这里直接开始
      

  7.   

    except
     on E:Exception do
      begin
      showmessage(e.message);
      end;
      

  8.   

    可以在关联的DatasetProvider的OnUpdateError中处理异常。
      

  9.   

    好象我也碰到过捕捉不到的exception,只能将错误扩大
      

  10.   

    在TClientDataSet的OnReconcileError事件中处理.
      

  11.   

    试了ithinkthereforeiam()的方法可行
    谢谢各位了~