关于 oldvalue的问题? ( 积分: 15 )

  • 主题发起人 主题发起人 edns
  • 开始时间 开始时间
E

edns

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一子表 mytable_son (pno,mynum) ,主表 mytable_main(pno,smynum) (2表均为缓冲模式)
mytable_son
pno mynum
01 12
01 30
01 5
02 6
02 4
mytable_main
pno smynum
01 47
02 10

pno为 keyfield

现在 每当我新增一笔时,提示 at beginning of table 错误

代码(写在 field onchange事件中):
datamodule1.mytable_mainsmynum.value:=datamodule1.mytable_mainsmynum.value-datamodule1.mytable_sonmynum.oldvalue+datamodule1.mytable_sonmynum.newvalue;

请大家帮忙
 
我有一子表 mytable_son (pno,mynum) ,主表 mytable_main(pno,smynum) (2表均为缓冲模式)
mytable_son
pno mynum
01 12
01 30
01 5
02 6
02 4
mytable_main
pno smynum
01 47
02 10

pno为 keyfield

现在 每当我新增一笔时,提示 at beginning of table 错误

代码(写在 field onchange事件中):
datamodule1.mytable_mainsmynum.value:=datamodule1.mytable_mainsmynum.value-datamodule1.mytable_sonmynum.oldvalue+datamodule1.mytable_sonmynum.newvalue;

请大家帮忙
 
你的什么数据库啊,新增一条记录,用SQL的Insert语句更好些吧,然后再都要求和的列做求和操作。
 
sql2000+delphi5
比如,我现在调出一笔数据,有5条子记录,现修改一条子记录,那么主表该笔记录要重新加总,
如果用 sql查寻语句那太慢了,现我这样又出错(datamodule1.mytable_mainsmynum.value:=datamodule1.mytable_mainsmynum.value-datamodule1.mytable_sonmynum.oldvalue+datamodule1.mytable_sonmynum.newvalue;是缓冲模式)
,我该怎么办哦?????

大家帮忙啊!!!!
 
强烈建议斑竹采用触发器的方法,触发器对斑竹的这个问题最简单,也最容易解决。
 
我看看先
 
采用触发器的方法 的方法不行,因为触发器是在 applyupdate才起作用,而我是在,append后就起作用,比如(修改)
上面 pno 01 total_mynum 47
dbgrid中
pno mynum
01 12
01 30
01 5
当我将 30改成 35时,47立刻变成 52 (增加)
上面 pno 01 total_mynum 47
dbgrid中
pno mynum
01 12
01 30
01 5
当我增加 01 10 时,47立刻变成 57 (这一切都在没 post前发生)

请大家帮忙 , 急!!!!!!!!!!!
 
请问斑竹的操作是几层的 采用什莫方式进行的操作? 
append后就起作用,说明数据已经更新到数据库中。
(applyupdate其实就相当于一个事务。) 我想楼主的方式应该是实时系统吧。
对于实时系统,可以将触发器转化为存储过程的方式来实现。将存储过程放在Append后面吧
 
2层 ,用存储过程好慢
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
681
import
I
S
回复
0
查看
940
SUNSTONE的Delphi笔记
S
I
回复
0
查看
695
import
I
后退
顶部