dbisam数据库主从表结构的使用方法
要使用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
相关文章