procedure TAdd.but_okClick(Sender: TObject);
begin
     try
      webpoint.Insert;
      webpoint.FieldByName('webpoint_id').AsString:=txt_id.Text;
      webpoint.FieldByName('webpoint_name').AsString:=txt_name.Text;
      webpoint.FieldByName('webpoint_add').AsString:=txt_add.Text;
      webpoint.Post;
      webpoint.Refresh;
      messagedlg('增加系成功!',mtinformation,[mbok],0);
   except
    on E:Exception do
      begin
      messagedlg('错误'+E.Message,mtinformation,[mbok],0);
      end;
    end;
end;
我调试的时侯用一个会引起异常的数据输入然后会捕获到异常并且输出,但是当我以后再输入正确数据的时侯每次都会抛出那个异常,如果第一次输入正确数据就可以成功增加,总之出现了一次异常之后就怎么样的输入也是出错的了!为什么了?是不是ado关闭了?

解决方案 »

  1.   

    在insert 前close,然后再open一下.
      

  2.   

    就是弹出一个异常信息窗口 说 "由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。"
    只要出现一次这样的窗口以后不管输入正确不正确的数据都是弹出这个窗口的!没办法Insert
      

  3.   

    hxshaou(晓子) 这样做太消耗资源了,如果数据一多的话,这样将会很慢!
      

  4.   

    不过我在异常处理后用了close然后再open行了