网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi中带缓存的数据更新技术
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
Orderdb.Rollback;//如果发生意外,那么回滚这个事务,退出该过程
   exit;
  end;
  OrderDB.Commit;//如果没有发生意外,那么完成事务提交
  TBOrder.commitUpdates;//清空TBOrder表的客户缓冲区
  TBDetail.commitUpdates;// 清空TBDetail表的客户缓冲区

 end;

 procedure TOrderForm.TBDetailNewRecord(DataSet: TDataSet);
 {当新增一个明细表记录时所完成的动作。}
 begin
 TBDetail.FieldByName(''OrderID'').AsInteger:=TBOrder.FieldByName(''OrderID'').AsInteger;
 file://将主表的orderID字段赋给明细表的orderID字段,这个字段是两个表的关联字段

 end;

procedure TOrderForm.TBDetailUpdateRecord(DataSet: TDataSet;
 UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
 {当实际更新数据库表时,需要同时进行的操作在onUpdateRecord事件中定义,
  在本例当中是进行明细表和库存表的级联更新操作。
  注意:在本过程当中所进行的操作是在实际更新数据库时所进行的动作,
   而不是更新客户端的缓存数据时所进行的动作}
 Var temp_query:TQuery;
 begin
  if UpdateKind=ukInsert then file://如果更新类型是插入一个新的记录,那么更新相应的库存量
   with temp_query do
   begin
    close;
   SQL.clear;
   SQL.add(''update storage set stocks=stocks-:amount'');
   SQL.add('' where commondityID=:commondityID'');
   paramByName(''amount''):=TBOrder.FieldByName(''amount'').AsFloat;
   ParamByName(''commondityID''):=TBDetai.FieldByName(''commondityID'').AsInteger;
   execSQL; file://执行更新库存的sql语句,将相应的库存量减去。
  end;

 end;

 procedure TOrderForm.TBDetailAfterPost(DataSet: TDataSet);
 {当对明细表的记录进行修改,并提交(post)之后,执行本过程中的语句。
  注意:这种提交是针对客户端数据的,并没有真正反映到数据库中去。
  在本例当中,实现的功能是计算主表的总金额字段}
 begin
  TBOrder.FieldByName(''money''):=0;
  with TBDetail do
  begin
   first;
   while not eof do
   begin
    TBOrder.FieldByName(''money''):=TBOrder.FieldByName(''money'')+
    FieldByName(''price'').AsFloat*FieldByName(''amount'');
    file://将明细表的金额累加到主表的金额字段
   next;
  end;
 end;

end;

end.

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号