DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tino0914
今日帖子: 30
在线用户: 13
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 chineseswish (swish) ★☆☆☆☆ -
普通会员
2015/7/14 9:32:13
标题:
【QDB】QDataSet 支持主从表方式说明 浏览:4530
加入我的收藏
楼主: 转载自QDAC官网网站,文章发现问题可能随时更新,最新版本及更好的排版请访问:http://blog.qdac.cc/?p=2665

QDataSet 做为 QDB 的重要组成部分,目前已经支持主从表的设定。QDataSet 的主从表支持与一般的数据集略有不同,我做了一些简化和增强处理。设定主从表第一步与一般的数据集没有什么不同,设置从表的 MasterSource 为主表的数据源( DataSource ),但接下来就有所不同了:
1、直接通过设置 MasterFields 来激活主从关系
MasterFields 的格式进行了增强,不再是分别设置 MasterFields 和 IndexFields 。直接设定关键字段关联即可,格式为:

主表字段=从表字段[;主表字段=从表字段]…

如果主表字段和从表字段名一样,可以只写主表字段,多个字段间通过分号或逗号直接分隔即可,示例如下:

FDetailDataSet.MasterSource := DataSource1;
FDetailDataSet.MasterFields := 'id=MasterId';
2、通过 OnMasterChanged 事件来获取从表数据

OnMasterChanged 事件在主表记录变更后会触发一次,所以在我们并不想一次性获取到所有的从表数据时,我们可以通过响应这一事件来动态获取明细数据,如:

...
FDetailDataSet.OnMasterChanged := DoMasterChanged;
FDetailDataSet.MasterSource := DataSource1;
...
rocedure TForm1.DoMasterChanged(ADataSet: TDataSet);
begin
  FProv.OpenDataSet(FDetailDataSet, 'select * from pg_attribute where attrelid='
    + FMasterDataSet.FieldByName('oid').AsString);
end;
----------------------------------------------
QDAC 开源数据库访问组件欢迎大家关注讨论和使用 官网(博客):http://www.qdac.cc 讨论QQ群:250530692 QLang 多语言组件快速让你的程序走向海外
作者:
男 star5 (星五) ★☆☆☆☆ -
盒子活跃会员
2015/7/14 9:33:46
1楼: 顶。
----------------------------------------------
博客 - http://offeu.com
脚本模型 - http://webpascal.com
需要短信接口的请联系我,可发行业与营销内容。
作者:
男 zhahongyi (如风) ★☆☆☆☆ -
普通会员
2015/7/14 10:27:39
2楼: 铜鼎
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS