你的触发器导致返回受影响的记录数有多个,adoquery的execsql取第一个,就是
update Table_1 set acc='s'产生的,
表 Table_1 ,里面只有一个字段 acc(char),里面有3条记录
实际上返回的是3
update Table_1 set acc='s'产生的,
表 Table_1 ,里面只有一个字段 acc(char),里面有3条记录
实际上返回的是3
insert Table_1(acc)values(3)
而只是update Table_1 set acc='s'那么返回值是2
FOR UPDATE
AS
BEGIN
insert Table_1(acc)values(3)
update Table_1 set acc='s'
END
将update放在insert的后面
那么返回值是2
execsql返回值,所代表的意思,到底是什么呢?
例如
update
update
insert
则返回第二个update锁影响的行数insert
insert
update
则返回第二个insert锁影响的行数
execsql返回值,所代表的意思,到底是什么呢?
execsql返回的值,是第一批同类语句的最后一句影响的记录数
例如
update
update
insert
则返回第二个update锁影响的行数
update
insert
update
则返回第一个update锁影响的行数
insert
insert
update
则返回第二个insert锁影响的行数
insert
update
insert
则返回第一个insert锁影响的行数
第一个语句是 update t1 set char1='a'
第二个语句是 update Table_1 set acc='s'
第三个语句是 insert Table_1(acc)values(3)
所以返回值是第二个update语句 update Table_1 set acc='s'的影响的记录数
你可以调整这三个语句的顺序来测试其它情况