S
sumingfei
Unregistered / Unconfirmed
GUEST, unregistred user!
有一个生产流程管理的C/S系统中需要四十多种单据,我在阅读本论谈的大量资料后,
采用传说中最佳的主明细连接方式:TQuery (Updates=False and RequestLive=False)+TUpdateSQL.
首先我偿试着改写了Examples/DBTasks/MastApp(原用TTable).
发现了:
(1.) 明细表BeforeEdit时需把主表变成Edit状态,当在程序中
把主表的dsBrowse改成dsEdit时,明细表的记录号会跑到第一条,
这样,如果想直接修改明细表的非第一条数据就不行,最起码输入的
第一个字符无效。
(2.) 在主表AfterPost中ApplyUpdates主、明细表。
奇怪的是:无论你怎么样修改、删除明细表,
在主表AfterPost事件中明细表的UpdatesPending=False,(之前没有提交)
用单步执行时发现在主表BeforePost事件中UpdatesPenging=True,
所以只得在BeforePost开始一个事务提交明细表,到AfterPost中提交主表,才结束事务。
不知你的解决方法?请问事务是不是过长了?
(3.)主表BeforeDelete时删除所有明细数据,一条一条的Delete.但在主表AfterDelete事件中
明细表的UpdatesPening=False,所以不能保存对明细表的删除.好象同上(2)的原因一样.
对于级连删除是在客户端实现好呢?还是用触发器好呢?