下面的是一个书籍查询界面的布局,设置如下:
dbgrid1的Datasource:Datasource1 Datasource1的Daset是:table1
dbgrid2的Datasource:Datasource2 Datasource2的Daset是:query1
我现在想实现当我点击DBGRID1中相应的出版社名称时,dbgrid2中就会
显示出相应的出版社的书籍信息,请问这个应该具体怎么做,请写出详细的
代吗为谢!
DBgrid1 DBgrid2出版社名称 书籍编号,书籍名称,作者,定价,现有数量,出版社名称
----- ---- ---- -- -- ---- -----
清华出版社 A-001 JAVA 李伟 50 2 清华出版社
dbgrid1的Datasource:Datasource1 Datasource1的Daset是:table1
dbgrid2的Datasource:Datasource2 Datasource2的Daset是:query1
我现在想实现当我点击DBGRID1中相应的出版社名称时,dbgrid2中就会
显示出相应的出版社的书籍信息,请问这个应该具体怎么做,请写出详细的
代吗为谢!
DBgrid1 DBgrid2出版社名称 书籍编号,书籍名称,作者,定价,现有数量,出版社名称
----- ---- ---- -- -- ---- -----
清华出版社 A-001 JAVA 李伟 50 2 清华出版社
Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社id = 出版社.出版社id');
Query1.Open;
表名和字段名改成你定义的名称
query1.datasource:=Datasource1; Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社id
=: 出版社.出版社id');//=:表示相连的关键字。
Query1.Open;
Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社id = 出版社.出版社id where 书籍信息.出版社id = '+table1.FieldByName('出版社id').AsString+'');
Query1.Open;
表名和字段名改成你定义的名称,如果你有‘出版社id’字段并且为数字型的话,就是以上,如果没有就试试下面: Query1.SQL.Clear;
Query1.Close;
Query1.SQL.Add('select 书籍信息.* from 书籍信息 inner join 出版社 on 书籍信息.出版社名称 = 出版社.出版社名称 where 书籍信息.出版社名称 = '''+table1.FieldByName('出版社名称').AsString+'''');
Query1.Open;