我正在使用ADO
在Delphi中做一个查询管理器,我需要知道查询将返回的所有字段,无论它们有多复杂以及有多少连接。我想调用一个函数,它返回给我一个特定查询中将返回的所有字段,以及字段信息,例如该字段来自的表。
在使用 php 的 mysql 中,我有命令 mysql_field_table
,在这个命令中我传递结果对象和字段索引,这个命令为我返回表名。
嗯,这是我的梦想,从查询中的字段索引获取表名称,例如:
SELECT * FROM TableOne Left Join Table2 ON Table2.MasterField = Table1.KeyField
最佳答案
您可以使用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;
关于sql-server - 如何使用 MSSQL 从联接查询中的字段获取表名? (mysql_field_table 等效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431830/