现是一个表结构为: F a b sum
1 5 8 13
2 6 6 12
触发器:tr_id(当insert、update数据时自动更新记录sum=a+b)
F是主键
在SQL SERVER数据库没有问题,能自动更新数据.而在delphi中就有问题.我的adodataset1设置为批量更新,添加没有问题.就是用adodateset1.updatebatch;就出现"键列信息不正确或键值不足,更新影响到多行.
1 5 8 13
2 6 6 12
触发器:tr_id(当insert、update数据时自动更新记录sum=a+b)
F是主键
在SQL SERVER数据库没有问题,能自动更新数据.而在delphi中就有问题.我的adodataset1设置为批量更新,添加没有问题.就是用adodateset1.updatebatch;就出现"键列信息不正确或键值不足,更新影响到多行.
if E.Message='键列信息不足或不正确。更新影响到过多的行。' then
Response:=rrIgnore在ADO中参照去写
==========================
CREATE TABLE [dbo].[proid_code] (
[letter] [char] (3) COLLATE Chinese_PRC_CI_AS NULL ,
[sign] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[number] [int] NULL ,
[sort] [char] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[codeid] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
[num] [int] IDENTITY (1, 1) NOT NULL
) ON [PRIMARY]
GO
====================================================================
create trigger tr_proid_code on proid_code
for insert,update
as update proid_code set codeid=rtrim([letter])+rtrim(isnull([sign],''))+
(case
when len(number)=1 then '000'+cast([number] as char(4))
when len(number)=2 then '00'+cast([number] as char(4))
when len(number)=3 then '0'+cast([number] as char(4))
when len(number)=4 then cast([number] as char(4))
end)
光标停在Response:=rrIgnore这里。是哪一个单元,response
我上面说的是在Provider中
2、这个问题,不应该用触发器来写,
在建表的时候,codeid=rtrim([letter])+rtrim(isnull([sign],''))+right('0000'+number的字符串,你的长度)
就可以了,不用触发器
(case
when len(number)=1 then '000'+cast([number] as char(4))
when len(number)=2 then '00'+cast([number] as char(4))
when len(number)=3 then '0'+cast([number] as char(4))
when len(number)=4 then cast([number] as char(4))
end)
where 你的自增字段=inserted.你的自增字段就OK了。
on SvcOrder after update
as
begin
IF @@RoWcount = 0 return
SET NOCOUNT ON --加這句
.... SET NOCOUNT OFF --加這句
这个是因为批量更新的时候,导致的错误 。
由于你的出发器不具备条件,所以他们回修改所有的数据。
重而导致数据库数据和ado中的数据不一致,所以引发了问题。
如果不是特别必要建议你使用where 语句
2 我觉得你的问题可能并不在这里,而是由于你的自增长字段批量插入时候的问题。如果你要用自增长字段,建议减少批量修改和并发操作。
rtrim([letter])+rtrim(isnull([sign],''))+right('0000'+cast(Number),4)
不就计算个总和不?在你的代码里面自动计算再加进去,何必加大数据库服务器的负担呢??