如何用table在几个数据库中检索数据,然后用同一个dbgrid显示出来(200分)

  • 主题发起人 主题发起人 gyq918
  • 开始时间 开始时间
G

gyq918

Unregistered / Unconfirmed
GUEST, unregistred user!
在几个相同数据结构的数据库中检索数据某一关键字,然后用同一个dbgrid显示出来。
应怎样设计程序?谢谢!!!1
 
前一部分工作应该在 SQL 语句中完成!
 
可以利用TTable中的新建字段的功能来将别的table中的字段作为自己的一个字段,
或是建立一个计算字段,有些象视图。

比如有两个table:table1与table2
你可以这样,
在Table1上按右键,选fileds editor;
再按右键,选add fields ,选择你所希望加入表格的字段;
再按右键,选new field,填新加的字段名,类型,长度
在字段类型(Field type)中选Lookup
此时下方的lookup definition可选,
Key Fields中设置好table1中的关键字,
Dataset中设置为table2,
LookupKeys中设置为table2中的字键字(与table1对应)
Result Field中设置为你想在表格中显示的table2中的字段。

大至过程如上。
Have a try!
 
建个临时表。
 
添加控件query1,query1.sql.add('select field1 from table1 ,table2');
query1.sql.add ('order by field1')
添加控件datasource1,dataset=form1.query1,
dbgrid1 datasource prop.=datasource1
...差不多乐...
 
答错了。扣我分:~(
 
能给个不用Tquery的理由吗?
 
同意amo的意见。

但是用QUERY更加高效率。强烈推荐。
 
如果用amo的方法的话,不能一次自动检索所有的数据库文件,如果要达到这个要求的话,应怎样做?
如果用query的话,应怎样设计?能否给出具体的程序?(我对query不是很熟悉)。谢谢!!1
 
在query1中的SQL中
select * from customer,country where customer.country(+)=country.name
order by country.name
在datasource1中的dataset加query1
dbgrid中加的datasource中加datasource1
希望对你有帮助
 
select Table1.FieldName1, Table2.fieldName2 from Table1, table2 where .....
 
用lookup也可以吧!!
 
用Rx的TMemoTable很轻松
 
设:已有表为: aaa,bbb,ccc 关键字字段为 keyfield
with query1 do begin
sql.clear;
sql.add('select aaa.keyfield,bbb.keyfield,ccc.keyfield from aaa,bbb,ccc');
open;
end;
datasource1.dataset:='query1';
dbgrid1.datasource:='datasource1';
ok?

 
但是如果是加参数的话,表与表之间必须有关联的。
 
多人接受答案了。
 
后退
顶部