Delphi数据库开发之TTable篇2
2020-02-16 16:58
274 查看
虽然从各方面的信息来看BDE已经日落西山的感觉,但一种成熟的东西被完全忘却是需要很长一段时间的。还是把一些TTable控件一些常用的方法记录一下。数据库应用程序很多时候都需要显示主从表数据,而上节说到TTable主要是用于显示数据列表的,所以TTable在该情况下使用较简易。
例如:Table1用于提取主表的数据,主键名为A,DataSource1连接Table1,用DBGrid1;Table2用于提取子表数据,外键为B,用DBGrid2显示。要求在DBGrid1的当前记录改变时,DBGrid2能显示对应的子表数据。
方法1:使用MasterField和MasterSource属性,该方法比较易用,但可控制程度稍低。只要指定Table2的MasterSource属性为DataSource1,在MasterField的对话框中把A B指定为Join Field即可实现主从表数据显示。
方法2:使用Filter和Filtered属性。该方法涉及的方面比较多,而且还有引号的问题,但可数据操作较灵活。同样是上面的控件。
Table1AfterScroll事件加入
if not Table1.IsEmpty then
Table2.Filter:='B='+QuotedStr(Table1.FieldByName('A').AsString);
else Table2.Filter:='B='+QuotedStr('-9999');
Table2.Filtered:=True;
该代码假设B字段是文本型字段,A不可能取值为'-9999'
例如:Table1用于提取主表的数据,主键名为A,DataSource1连接Table1,用DBGrid1;Table2用于提取子表数据,外键为B,用DBGrid2显示。要求在DBGrid1的当前记录改变时,DBGrid2能显示对应的子表数据。
方法1:使用MasterField和MasterSource属性,该方法比较易用,但可控制程度稍低。只要指定Table2的MasterSource属性为DataSource1,在MasterField的对话框中把A B指定为Join Field即可实现主从表数据显示。
方法2:使用Filter和Filtered属性。该方法涉及的方面比较多,而且还有引号的问题,但可数据操作较灵活。同样是上面的控件。
Table1AfterScroll事件加入
if not Table1.IsEmpty then
Table2.Filter:='B='+QuotedStr(Table1.FieldByName('A').AsString);
else Table2.Filter:='B='+QuotedStr('-9999');
Table2.Filtered:=True;
该代码假设B字段是文本型字段,A不可能取值为'-9999'
转载于:https://www.cnblogs.com/Byeah/archive/2004/06/22/3162430.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Delphi数据库开发之TBDEDataSet.CachedUpdates
- 《Delphi 面向对象编程思想》书评
- 又一灵异事件 Delphi 2007 在 Win7
- delphi stdcall 错误
- Delphi中Inputbox 和Inputquery 函数的使用
- Delphi ClientDataSet 主从结构 BUG
- SQL Server 2000 字段类型 Delphi 数据类型对照
- Delphi TreeView 节点上下移动
- Delphi Exif
- Delphi 字母 递增 递减算法
- delphi显示jpg、png、gif图片
- Delphi 关键字详解
- 基于Delphi的BHO开发基础
- 使用Delphi开发IE右键菜单扩展
- 初探Delphi中的插件编程
- 使用Delphi开发IE按钮扩展
- 转:用Delphi开发过滤特定网址的BHO插件
- Delphi开发嵌入式IE浏览器监控程序
- delphi使用IdTcpClient和IdTcpServer数据通信
- delphi 调用C# DLL程序集