各位大哥,请教如何用俩个ADOQUERY在DBGRID中实现master/detail表关系? (50分)

  • 主题发起人 主题发起人 Sdelphi_fu
  • 开始时间 开始时间
S

Sdelphi_fu

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥:
请教如何用俩个ADOQUERY在DBGRID中实现master/detail表关系?
(如两个表:表一order_data的PK是ord_no;而另一个表ord_detail的PK是Ord_no,Ord_id)
小弟在此有谢了。
 
在细表ADOQUERY的SQL属性中写主细关联查询语句,在主表DBGRID的ONCELLCLICK事件中打开
细表的ADOQUERY。
 
to :tangle 你好,
很感谢你的指点。 因为我对你的主细关联查询语句
和“主表DBGRID的ONCELLCLICK事件中打开
细表的ADOQUERY
。”两者之间的对应关系不是很明白,
因为我是一个新手,所以想请教一下你,你所说的“主细关联查询语句”
如何写?你举一个例子,好吗?
 
adoquery1-->主表,adoquery2-->细表
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
ADOQuery2.SQL.Add('select * from ord_detail where Ord_no = '
+ DBGrid1.DataSource.DataSet.fieldByname('Ord_no').AsString);
if ADOQuery2.Active then ADOQuery2.Close;
ADOQuery2.Open;
end;
 
to :tangle 你好,
多感谢你的指点,我已经能实现相应的功能了,有一点我想请教你一下,你的思路是在
主表中的DBGRID1中用MOUSE点击时才触发一对多的事件,如果是记录移动而不是MOUSE点击
呢?(因我是先靠论坛给分的,50分不成敬意,请多多包函)
 
加一datasource指向Query1,在其ondatachange事件中写代码
 
如楼上所说,将响应点击事件的代码写在datasource的ondatachange事件中
 
to :tangle and catfox
谢谢俩位的帮忙!
有一个网友说,用adoquery 控件做主/从表的关联,如果数据量很大,
速度会有很慢是吗?你们认为呢?
MARTIN_FU 在此有礼了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部