H
hgood
Unregistered / Unconfirmed
GUEST, unregistred user!
我在客户端用ClientDataSet1.ApplyUpdates(-1)更新数据后,用SqlServer2000的事件
探测器可看到系统确实作了更新,代码如下:
exec sp_executesql N'update initstock set
Qty = @P1,
Price = @P2
where
DepotID = @P3 and
BerthNo = @P4 and
GoodsID = @P5 and
Unit = @P6 and
ProvNo = @P7 and
BatchNo = @P8
', N'@P1 numeric(12,3),@P2 float,@P3 int,@P4 varchar(8),@P5 varchar(16),@P6 varchar(8),@P7 varchar(8),@P8 varchar(12)', 2.000, 2.000000000000000e+000, 2, '003', '10003', '盒', '003', '31'
但是在客户端再次打开时,还是原来的数据!用ClientDataSet1.ApplyUpdates(0)是可以
修改相应的数据!我想上面的原因可能我的中间层不知哪个选项没有设好而让系统再次
回滚,所以没有修改,而我用ClientDataSet1.ApplyUpdates(-1)的原因是因为我想在多个
用户同时修改一条记录时(表用多个字段作主关键字,有可能修改的某一字段是作为主关键
字段的)用到Reconcile Error Dialog功能,以前的贴上都说用ClientDataSet1.ApplyUpdates(-1)更新法才可以!不知道大家有什么好想法(中间层用Com+,服务器为Windows Server 2000)!
谢谢大家
另:UpdateMode=upWhereKeyonly
探测器可看到系统确实作了更新,代码如下:
exec sp_executesql N'update initstock set
Qty = @P1,
Price = @P2
where
DepotID = @P3 and
BerthNo = @P4 and
GoodsID = @P5 and
Unit = @P6 and
ProvNo = @P7 and
BatchNo = @P8
', N'@P1 numeric(12,3),@P2 float,@P3 int,@P4 varchar(8),@P5 varchar(16),@P6 varchar(8),@P7 varchar(8),@P8 varchar(12)', 2.000, 2.000000000000000e+000, 2, '003', '10003', '盒', '003', '31'
但是在客户端再次打开时,还是原来的数据!用ClientDataSet1.ApplyUpdates(0)是可以
修改相应的数据!我想上面的原因可能我的中间层不知哪个选项没有设好而让系统再次
回滚,所以没有修改,而我用ClientDataSet1.ApplyUpdates(-1)的原因是因为我想在多个
用户同时修改一条记录时(表用多个字段作主关键字,有可能修改的某一字段是作为主关键
字段的)用到Reconcile Error Dialog功能,以前的贴上都说用ClientDataSet1.ApplyUpdates(-1)更新法才可以!不知道大家有什么好想法(中间层用Com+,服务器为Windows Server 2000)!
谢谢大家
另:UpdateMode=upWhereKeyonly