Delphi数据库开发之TTable篇2

  虽然从各方面的信息来看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'
posted @ 2004-06-22 08:00  Byeah  阅读(360)  评论(0编辑  收藏  举报