David    在Delphi中, 
David    有没有看过这样的错误 '键列信息不足或不正确。更新影响到多行'。 
火凤凰   看过 
David    我往表A中插入记录,表A有一触发器,该触发器会向表B中插入多条记录, 
David    A、B表在我的Delphi Form中要显示, 
David    可会出现 '键列信息不足或不正确。更新影响到多行。 
David    在后台测试没问题, 
David    懂我的意思了吗? 
火凤凰    试试: 如果去掉B表在Delphi Form中的显示是否仍会出现错误提示 ? 
David    其实插入操作后台都成功了,但还是会显示上面的错误,不知是Delphi的问题还是数据库的问题 
火凤凰    所以一个一个来试啦, 先去掉B表在Delphi Form中的显示是否仍会出现错误提示 ?  
火凤凰   试得怎样 ? 
David    try post except //error 错误是从这里发出的 
David    我把A的CursorLocation设为clUseServer不报错 
火凤凰    最好不要用clUseServer 
David    听说这样很耗资源 
David    是啊,但这样真的不会出现问题 
火凤凰  看看CursorLocation得帮助, 就知道了 
火凤凰  我想错误的提示是因为触发器向表B中插入多条记录引起B表本地的DataSet的CursorLocation与Server的Cursor不同步的原因引起的 ! 
David    我就是让B表不显示,不打开,还是不行 
火凤凰    你等等我正在试 --------
怎么样解决上面的问题啊

解决方案 »

  1.   

    错误码为1009
    Connection.Errors[0].NativeError 错误码为1009,在Master.sysmessages中都没有
      

  2.   

    增加、更新、删除主从表时老出现“键列信息不足或不正确,更新影响到更多的行 ”
    问题解决办法:
      1、检查是否有重复记录,如有考虑设置主键
      2、如没有重复记录,在加触发器后才产生的此错误,则在触发器里加上
         SET NOCOUNT on  即可。
        原因估计是,更新多行结果返回更新多行信息不是一行,而ado引擎便判断错误。
        所以干脆不允许出现任何返回。建议写触发器时都加上这句,少好多麻烦。
      

  3.   

    呵呵 向dickeybird888(于伟刚)同志致敬!