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表不显示,不打开,还是不行
火凤凰 你等等我正在试 --------
怎么样解决上面的问题啊
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表不显示,不打开,还是不行
火凤凰 你等等我正在试 --------
怎么样解决上面的问题啊
Connection.Errors[0].NativeError 错误码为1009,在Master.sysmessages中都没有
问题解决办法:
1、检查是否有重复记录,如有考虑设置主键
2、如没有重复记录,在加触发器后才产生的此错误,则在触发器里加上
SET NOCOUNT on 即可。
原因估计是,更新多行结果返回更新多行信息不是一行,而ado引擎便判断错误。
所以干脆不允许出现任何返回。建议写触发器时都加上这句,少好多麻烦。