当前位置:主页>仓库管理软件> 列表

ADOQuery.post与触发器问题!急 找药品进销存管理软件

记账软件版1楼: 问题如下:
我的New2 有一触发器
例如
CREATE TRIGGER AAQ ON New2 FOR INSERT AS
update new2 set Fa= 123 把new2的FA都更新为123
在SQL下运行正常,可以更新。
就是使用ADOquery的POST方法提交时:
如果只更新一条数据就没问题,但如果NEW1有多条数据就出现:
‘键列信息不足或不正确,更新影响到多行’
其实数据已经正常更新,NEW2也已经插入了新记录,但就是有上面所说的错误
救命啊~!

2楼: update new2
set
fa=123
from inserted,
写表格名称啊。
试试,要不就估计完蛋 如药品进销存管理软件

3楼: 我的触发器:
CREATE TRIGGER TIG1 ON New2 FOR INSERT,update,delete AS


if (select NumberEdit1 from inserted ) >=1-- and (select * from deleted ) <1
begin
update New1 set NumberEdit1 = New1.NumberEdit1- inserted.NumberEdit1
from inserted inner join New1 on inserted.Edit0 = New1.Edit0

end
if (select NumberEdit1 from deleted ) >=1-- and (select * from inserted ) <1


begin
update New1 set NumberEdit1 = New1.NumberEdit1- deleted.NumberEdit1
from deleted inner join New1 on deleted.Edit0 = New1.Edit0
end

4楼: 個這融發器就可以直接使用了。
CREATE TRIGGER AAQ ON New2
FOR INSERT AS
UPDATE new2 SET Fa= 123 WHERE ID = (SELECT ID FROM INSERTED) -- 這個ID是你的數據表的主鍵字段名

5楼: to bbscom:
我的触发器是可以用的,在SQL查询分析器里完全正常,
但我用adoquery.post来提交新增就会出错,表面出错但其实后台数据已经更新了,

6楼: 你的情况我以前遇到过,是由Delphi ADO的一个小小的bug引起的, 解决办法:
CREATE TRIGGER ..... AS
BEGIN
SET NOCOUNT ON
..................
...................
SET NOCOUNT OFF
END

记账软件版7楼: 非常感谢yyh5x,问题解决,请问有详细资料吗?这个问题烦了我3天,我想彻底了解它
我QQ495963512

8楼: 谢谢yyh5x