如何从 MSSQL 连接查询中的字段中获取表名? (mysql_field_table 等效)
Posted
技术标签:
【中文标题】如何从 MSSQL 连接查询中的字段中获取表名? (mysql_field_table 等效)【英文标题】:How to get the table name from a field in a join query with MSSQL? (mysql_field_table equivalent) 【发布时间】:2013-03-04 03:12:21 【问题描述】:我正在使用ADO
在 Delphi 中做一个查询管理器,我需要知道查询将返回的所有字段,不管它们有多复杂和有多少连接。我想调用一个函数,该函数返回给我,将在特定查询中返回的所有字段,以及字段信息,例如表这个字段来自什么。
在带有php的mysql中,我有命令mysql_field_table
,在这个命令中我传递结果对象和字段索引,这个命令为我返回表名。
嗯,这就是我的梦想,从查询中的字段索引中获取表名,例如:
SELECT * FROM TableOne Left Join Table2 ON Table2.MasterField = Table1.KeyField
【问题讨论】:
【参考方案1】:您可以使用TADODataSet
来获取Recordset
,迭代Fields
集合,并获得如下表/字段名称:
for I := 0 to ADODataSet1.Recordset.Fields.Count - 1 do
begin
TableName := ADODataSet1.Recordset.Fields[i].Properties['BASETABLENAME'].Value;
FieldName := ADODataSet1.Recordset.Fields[i].Properties['BASECOLUMNNAME'].Value;
end;
【讨论】:
你不知道你帮了我多少。非常非常非常感谢……我非常感谢……你是最棒的!!!对不起,但我没有投票的声誉,但感觉是你自己投票的! +1 不知道这是可能的。此属性是否适用于所有数据库类型? @whosrdaddy,我将它与 MSSQL 和 MS-ACCESS 一起使用。它取决于提供者(除其他外)。看一个相关资料:When Table Name Is Available Using ADO, RDO, DAO以上是关于如何从 MSSQL 连接查询中的字段中获取表名? (mysql_field_table 等效)的主要内容,如果未能解决你的问题,请参考以下文章