(**问题没有解决,重新发贴. 总结前贴的测试结果)** 关于ADO 主从表的UpdateCatch (批量更新) 问题,请高人指教?
(**问题没有解决,重新发贴. 总结前贴的测试结果)** 解决后一起结贴
** 关于ADO 主从表的UpdateCatch (批量更新) 问题,请高人指教?
初始: 主表 SA LockType = ltBatchOptimistic , CacheSize =1000
从表 SA_ITEM LockType = ltBatchOptimistic, CacheSize = 1000
当新增时 (SA.Append)
SA 明细输完后,输入多笔SA_ITEM
当 SA_ITEM (not noll) 字段都输完,保存正常.
例如 (1)
A B C
**********************
1 1 a
2 2 3
**********************
(表1)
假如字段C 为(not NULL) 把以上数据改成如下
A B C
****************
1 1 a
2 2
******************
表 (2)
其中 字段C第二条记录为空,我点保存,提示错误信息(正常,因为字段C第条字段值为空)
然后我把字段C 第二条记录补上,跟(表1)数据一样,
或把第二条记录删除(sa_item.delete )
保存时还是提示错信息.
出错信息
" 出错:找不到要更新的列,最后读取的值被变更 "
我的保存代码是:
sa_item.FieldByName('f_s_no').Asinteger=1;
Try
AdoConnection1.BeginTrans; // 事务开始
sa.UpdateBatch();
sa_item.UpdateBatch();
DMData.ADOConnection1.CommitTrans; // 提交
Except
// XXSingle(水连天【盘古传说】) 指点
on e:except do
begin
Application.message(pchar('原因:'+e.message),'错误',MB_ICONERROR)
AdoConnection1.RollbackTrans; // 回滚
end;
End;
请指点这是为什么,应该怎么处理?