关联两表内容查找问题 (50分)

  • 主题发起人 主题发起人 redwood
  • 开始时间 开始时间
R

redwood

Unregistered / Unconfirmed
GUEST, unregistred user!
现有a b两表,b为a的从表,两表以学号为联系。现用QUERY查找。
要怎样做才能实现在A表查找,返回结果显示在dbgird1上的同时在dbgrid2上显示学号与dbgird1中学号相同的B表内容?
 
简单。就是设置主从表问题啊。
把表2的mastersource设置为table1。然后按部就班就是了
 
ds1 : TdataSource;
ds2 : TdataSource ;
设置
ds1.dataset := table1;
ds2.dataset := table2;
table2.mastersource :=ds1;
当你指向表1的某个纪录时
表2自动显示该纪录的子纪录

 
需要说明的是DNGird是显示SQL查找结果的地方,而不是单纯显示表内容的地方
也就是说DBGird连接的TdataSource是指向query的
 
一种方法同上!
另一种可用sql实现!
在主表的datasource的datachange事件中加入代码
s:=query1.fieldbyname('yourfield').value;
query2.close;
query2.sql.clear;
query2.sql.add('select * from congbiao where yourfield=:n');
query2.params[0].asstring:=s; //if is string
query2.open;
 
楼上的方法只是搜寻从表内容而已,我想实现的是搜索主表内容,然后从表显示同主表学号相同的项目内容。
并且主表不只是以学号作为搜索参数
 
在Query1中的Sql:select * from a ,置active=true
在Query2中的Sql:select * from b where 学号=:学号
置Query2的datasource为Query1就行了
 
后退
顶部