Sql server触发器,Ado问题,请教高手
zzao 2001-05-30 03:39:00 出库表 MoutD 结构 Mcode,batchcode,qty
动态库存阴 dynstock 结构 mcode,batch qty,触发器实现,出库时自动减库存表数量,写法如下:
CREATE TRIGGER MoutD_Ins ON dbo.MoutD
FOR INSERT AS
DECLARE @Mcode VARCHAR(13),@BatchCode VARCHAR(50),@Qty DECIMAL(10,4)
DECLARE cuMoutDIns CURSOR FOR SELECT Mcode,BatchCode,
Qty FROM inserted
OPEN cuMoutDIns
FETCH NEXT FROM cuMoutDIns INTO @Mcode,@BatchCode,@Qty
WHILE (@@fetch_status<>-1)
BEGIN
/*修改动态库存表*/
UPDATE DynStock SET Qty=Qty-@Qty WHERE Mcode=@Mcode And And
BatchCode=@BatchCode MQuality_KID=@MQuality_KID
FETCH NEXT FROM cuMoutDIns INTO @Mcode,@BatchCode,@Qty
END
CLOSE cuMoutDIns
DEALLOCATE cuMoutDIns
手动在MoutD表中添加记录时触发器执行正确
但在Dephi中用Ado插入多行记录时提示出错 无法为更新行集定位 一些值在最后读取后改变
请解决