如何在已存在的多表Query中取得其中字段所对应的数据库表(200分)

  • 主题发起人 主题发起人 wsm
  • 开始时间 开始时间
不知我是否把问题描述清楚,怎么没人回答?
例如在DBF数据库中有两个表items.dbf和orders.db,仅仅根据一个SQL语句
’select items.OrderNo,items.ItemNO,items.PartNo orders.SaleDate,
orders.ShipDate from items,orders where items.OrderNO=orders.OrderNo'
取出其中每个字段所对应的数据库表,例如items.OrderNo所对应的表是items.dbf,
而orders.ShipDate所对应的表是orders.db,这两个表的扩展名不一样。



 
>>如何在已存在的多表Query中取得其中字段所对应的数据库表
~~~~~~~~~~~~~~~~~~
已知的是sql语句否是一个结果?如果只知道结果是没戏了,除非在字段名上下下功夫。


 
如果你的语句是自己写的,你可以加上扩展名啊。
 
映射TDataSource,即将第二个数据库给TDataSource,Sql会根据你第一次的检索
数据集自动匹配你的要求。
 
我想做了一个查询生成工具,根据查询工具生成的sql语句,利用报表生成工具产生
与查询相关的报表,我利用TQuery构件根据sql语句可以获得查询的字段信息,我想进
一步获得查询中每个字段所对应的数据库表。
 
>不知我是否把问题描述清楚,怎么没人回答?
确实没有描述清楚:(

>例如在DBF数据库中有两个表items.dbf和orders.db,仅仅根据一个SQL语句
==========? ====? ===?
orders.db or orders.dbf? is it foxpro DB or paradox DB?
>’select items.OrderNo,items.ItemNO,items.PartNo orders.SaleDate,
>orders.ShipDate from items,orders where items.OrderNO=orders.OrderNo'
>取出其中每个字段所对应的数据库表,例如items.OrderNo所对应的表是items.dbf,
>而orders.ShipDate所对应的表是orders.db,这两个表的扩展名不一样。
==============================================================
那么你到底要干什么?
 
to cytown:
我想做了一个查询生成工具,根据查询工具生成的sql语句,利用报表生成工具产生
与查询相关的报表,我利用TQuery构件根据sql语句可以获得查询的字段信息,我想进
一步获得查询中每个字段所对应的数据库表。

俺举的例子有问题,‘items.dbf和orders.db‘,但只是想说明数据库表的扩展名
不一样,现在我并不关心数据库表的扩展名了,只要获得数据库表名就行!
 
你的查询工具生成SQL语句时,可以得到字段所属的表名,这时就记下来,第几个字段,
属何表,不就可以了吗?
 
to Jams兄:
〉〉
映射TDataSource,即将第二个数据库给TDataSource,Sql会根据你第一次的检索
数据集自动匹配你的要求。
〉〉
俺不太明白,能否详细一点

我想做了一个查询生成工具,根据查询工具生成的sql语句,利用报表生成工具产
生与查询相关的报表,我利用TQuery构件根据sql语句可以获得查询的字段信息,我想
进一步获得查询中每个字段所对应的数据库表。
俺举的例子有问题,‘items.dbf和orders.db‘,但只是想说明数据库表的扩展名
不一样,现在我并不关心数据库表的扩展名了,只要获得数据库表名就行!


 
to wgzhang
>>你的查询工具生成SQL语句时,可以得到字段所属的表名,这时就记下来,第几个字段,
>>属何表,不就可以了吗?

这种方法需要增加一张数据表,我是想能否从TQuery构件直接获得每个字段所对应的
数据库表。
 
增加一张数据表没有必要,只要有个StringList就可以,我的想法是解决问题.
而你的想法是
>我是想能否从TQuery构件直接获得每个字段所对应的数据库表。
 
很容易嘛,
只要分析一下'select items.OrderNo,items.ItemNO,items.PartNo, orders.SaleDate,orders.ShipDate from items,orders where items.OrderNO=orders.OrderNo'
就可以了。
取出'select'和'from'之间的字符,进行分析就可以了。格式为“表.字段”。

给分吧 :)
 
TField.Origin指出了原始字段名(包括表名): 表名.字段名
 
你可以这样:
select items.orderno as items_orderno,...
然后简单地对字段名进行字符串提取操作。
 
多人接受答案了。
 
后退
顶部