一个DBGrid如何显示两个表的数据??? (20分)

  • 主题发起人 lishu2002
  • 开始时间
L

lishu2002

Unregistered / Unconfirmed
GUEST, unregistred user!
我要用一个DBGrid显示从两个数据表中组合的数据。选取Table1中的字段a1,a2,a3。table2中的b1,b2。其中在Table1中的a1是用来控制b1显示的类型,也就是说a1的内容是b1的内容前缀,比如,如果a1的值为‘录入’则b1就选取字段‘录入时间’,如果a1值为‘修改’则b1选取字段‘修改时间’,这样怎么操作?????
谢谢!!
 
筛选出来创建一个视图不就可以了!!!

[:)]
 
用一个query写sql语句把两个表关联得到数据集!
 
不好意思,这方面没有做过,请具体说清楚点吧:
比如,Table1中有a1,a2,a3字段,Table2中有b1,b2字段怎么做一个视图然后显示在DBGrid中呢?
 
select a.a1,a.a2,a.a3,b.b1,b.b2
from a,b where a.iid=b.iid
注:iid为两表关联的部份
应该可以的
 
这个问题不应该用Table控件来解决,应该用Query控件,在BDE中第二个组件就是,这个组件有一个SQL属性,可以直接在里面写SQL语句,这个语句决定了Query查询到的数据,Query的使用方法和Table类似,把DBGrid和Query连接就可以了.
 
我用的就是Query,只不过我是说两个原表是Table1和Table2,但是要是这样显示的话是不是要将数据表一直设成打开状态呢?
或者动态生成一个数据表之后怎么显示在DBGrid上面呢?
 
其实早就没有打开和关闭表的说法。
query可以从多个表取得数据集,这个数据集就可以显示在DBGrid上。
 
select * from Table1 a left join Table2 b on a.IID=b.IID
 
table与dbgrid是不能做动态查询和载dbgrid中显示的
可以改用query 货ADOQuery和dbgrid连接
如adoquery
with adoquery do
begin
sql.clear;
sql.add(select a.a1,a.a2,b.b1,b.b2 from a,b where ...');
open;
//下面可以对把dbgrid的标题该成中文
end;
 
可以用SQL语句LEFT JOIN来把两个表链接起来在DBGRID显示出来不就可以了!
你可以用QUERY 或者ADOQUERY组件来完成!
 
那如何将字段名修改成自己要显示的中文的名字显示在DBGrid上呢?
 
将表中的字段的注释读到DBGRID控件的Title.caption属性即可。
 
我是说原先的字段比如是“Time”,我现在要在DBGrid上面显示“时间”
怎么写语句????
 
我的条件在Table1中的a1是用来控制b1显示的类型,也就是说a1的内容是b1的内容前缀,比如,如果a1的值为‘录入’则b1就选取字段‘录入时间’,如果a1值为‘修改’则b1选取字段‘修改时间’,这样怎么操作?????
谢谢!!
 
如果a1和b1都是string类型的数据(如果不是就用TO_CHAR函数转)那么用以下的语句:
SELECT A.A1,A.A2,A.A1||B.B1,B.B2 FROM A,B,WHERE ...
 
楼上的你好,你可能误会我的意思了!那个例子中我的Table2的B1字段不是“时间”而是本来就有两个字段“录入时间”和“修改时间”我现在选取的时候要根据Table1的字段是“录入”或者“修改”来确定选取那个字段。
你上面的语句可以实现么??
 
先打開兩個數據庫,
select * from table1,table2 where......
 
怎么没人回答呢??
 
大家帮个忙吧!!
 
顶部