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

2022-03-30 00:00:00 字段 专区 属性 主从 控件

  要使用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解析错误异常,不知道其他数据库是不是这样。
————————————————

原文链接:https://blog.csdn.net/niniu/article/details/575449

相关文章