delphi DataSnap巢状主从表实现
来源:互联网 发布:兼职淘宝刷手会坐牢吗 编辑:程序博客网 时间:2024/06/10 03:12
服务端:添加ADOConnection,ADOQuery1,ADOQuery2。设置ADOQuery1为主表,ADOQuery2为从表。(通过 ADOQuery2.SQL.Text:= 'select * from 从表 where FKID=:主表PKID'设置)。添加DataSetProvider1和DataSetProvider2分别连接到ADOQuery1和ADOQuery2。
客户端:添加ClientDataSet1,ClientDataSet2。ClientDataSet1连接到DataSetProvider1。双击ClientDataSet1,右键Add All Field。可以看到一个TDataSetField字段。设置ClientDataSet2的DataSetField属性为ClientDataSet1中的TDataSetField列。添加DataCourse1、DataSource2分别连接到ClientDataSet1和ClientDataSet2控件。添加DBGrid1和DBGrid2分别连接到DataCourse1、DataSource2。设置ClientDataSet1.Active:= True;这时发现ClientDataSet2也自动打开。
自增列处理:假如主从表的主外键都是自增列,这时可以在服务端处理主从表关联。在DataSetProvider1中的BeforeUpdateRecord事件中添加如下代码:
procedure TForm1.DataSetProvider1BeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
UpdateKind: TUpdateKind; var Applied: Boolean);
begin
if ((UpdateKind = ukInsert) and
(SourceDS = ADOQuery2)
{and (DeltaDS.FieldByName('PKID').Value = Unassigned)}) then
begin
if DeltaDS.BOF then
begin
qryIdentity.Close; //qryIdentity.Sql.Text:= 'select @@identity';获取主表自增列的最新值
qryIdentity.Open;
end;
DeltaDS.FieldByName('PKID').NewValue := qryIdentity.Fields[0].Value;//赋给子表的当前行
end;
end;
this over.
- delphi DataSnap巢状主从表实现
- DELPHI DATASNAP 入门操作(3)简单的主从表的简单更新【含简单事务处理】
- Delphi XE5通过DataSnap实现数据库三层应用
- Delphi DataSnap方法实现BLOB字段的读写
- delphi datasnap 心跳包
- Delphi dataSnap中TreamToJson
- delphi datasnap 中间件
- Delphi主从表例子
- Delphi主从表例子
- delphi xe datasnap rest 相關
- Delphi XE2 DataSnap 上传下载文件
- Delphi三层主从表设置
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
- 多层数据库应用基于Delphi DataSnap方法调用的实现(二)更新数据集
- 多层数据库应用基于Delphi DataSnap方法调用的实现(三)对象池技术
- 多层数据库应用基于Delphi DataSnap方法调用的实现(四)BLOB字段的读写
- 多层数据库应用基于Delphi DataSnap方法调用的实现(四)BLOB字段的读写
- 多层数据库应用基于Delphi DataSnap方法调用的实现-----对象池技术
- [双语阅读]09年9月9日为何成结婚吉日?
- [英语阅读]09/09/09的魔力何在?
- HTML控件之图片上传
- 开博第一篇
- MySQL 建表的优化策略
- delphi DataSnap巢状主从表实现
- -Hibernate得介绍!
- PB中连接Access数据库的三种方法
- 快乐歌 - 献给亲爱的老婆
- ASA局域网C/S架构配置最终完美超强版............
- 三十以后,四十以后怎么办?关注未来,才能持续发展
- PB中的参数传递方式
- 测试程序运行时间
- pb Excel to datawindow