用事务,先POST细表的数据,再在细表的AFTERPOST中修改主表的总数,提交。
解决方案 »
- 请高手帮帮忙。我有两个问题
- 请问如何读取某程序中某寄存器的值?
- 如何在遍历数据的时候,表格控件的SCROLLBAR不改变位置???(垂直滚动条)
- 【求助】鉴于小弟编程功底粗略,备受技术限制,特散分拜师或寻一有益QQ讨论群
- 如何在查询窗口显示出来时按回车键则执行查询??
- 我用下面的句子处理插入数据于主键冲突,不好使!
- 有工资表(access 表),想按某个公式计算里面的某个字段(例如:应付工资),研究了一下,觉得利用VBA似乎可行,但却不知该如何入手,望高
- [a1,a2,sum(a3),sum(b3),sum(a3)-sum(b3)],请问该SQL语句怎么写?
- 抢分了
- 有关ListBox的一个问题
- 打包的问题
- 谁有1stclass(D6)控件组中,Outlookbar的使用方法或示例代码啊。。。急用。。。
同意Snakeguo(枫) 的意见。
我是这样想:
(1) select sum(单价*数量) from xxx where ... //这里是求出总价
(2) update 主表 set 总价 = 上一查询得出的结果 where ...
现在的问题是上一查询得出的结果应该用什么方式来表示,用变量吗,怎么用?
begin
adoquery1.sql.add(select sum(单价*数量) from xxx where ... );
abc:=adoquery1.fileds[0].asinteger;
end;
procedure TdmMaster.adodsMSBuyRecordCalcFields(DataSet: TDataSet);
begin
if qrySumMSBuy.Active=True then qrySumMSBuy.Close;
qrySumMSBuy.CommandText :='select sum(Number) as TotalNumber,sum(Number*Price) as TotalMoney from wMSBuyRecord where CaseID=:CaseID';
qrySumMSBuy.Parameters.ParamByName('CaseID').Value:=adodsMSBuyCase['CaseID'];
qrySumMsBuy.Open;
adodsMSBuyCase.Edit;
adodsMSBuyCase['TotalNumber']:=qrySumMSBuy['TotalNumber'];
adodsMsBuyCase['TotalMOney']:=qrySumMSBuy['TotalMoney'];
end;