dbisam数据库主从表结构的使用方法

本文介绍了如何使用DBISAM数据库的主从表结构,包括所需控件如TDBISAMTable和TDBISAMQuery,强调从表需对关联字段建立索引。设置TDataSource控件与主表关联,并配置从表的MasterSource和IndexFieldName属性。通过激活主从表,可以观察到主表移动时从表数据的同步变化。

    

  要使用DBISAM数据库主从表结构,需用到下列控件:

     一个TDBISAMTable或者TDBISAMQuery控件,命名为tblMaster或者qryMaster,

     一个(或多个)TDBISAMTable控件,名字为tblDetail,

     一个TDataSource控件,命名为dsMaster

   使用主从表结构,要有一个条件,就是从表一定要对关联字段建立索引,比如说主从表通过从表的teacher字段与主表的name字段实现关联,那么从表一定要对teacher字段建立索引,假设为teacheridx。

   另外,除了对tblMaster和tblDetail的DataBaseName等属性赋值只要,还设置几个属性:

      1、要设置数据源控件TDataSource的DataSet为主表tblMaster或者主表查询组件qryMaster:

              dsMaster.DataSet := tblMaster;

      2、要将从表控件的MasterSource属性设置为上面的数据源控件:

              tblDetail.MasterSource := dsMaster;

           并且设置从表控件的IndexFieldName属性为与主表进行关联的字段(注,如上所说,该字段一定要已经建立索引)

              tblDetail.IndexFieldNames := 'teacher';

      现在,我们可以打开主从表了:

             tblMaster.Active := True;

            // qryMaster.SQL.Text := 'select * from master where age>15';

            // qryMaster.Active := True;

             tblDetail.Active := True;

     当我们移动主表的当前记录时,从表的数据也会自动跟着变化:

            tblMaster.Next;

     可以用DBGrid控件观看。


    在网上看到有人说从表可以用下面方式:

       DataSet.SQL.Text := 'select * from detail where teacher=master.name';

    测试发现DBISAM的TDBISAMQuery组件不能实现,如:

      qryDetail.SQL.Text := 'select * from detail where teacher=master.name';

    执行到这里会导致SQL解析错误异常,不知道其他数据库是不是这样。     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值