我正在使用ADO
在Delphi中执行查询管理器,我需要知道查询将返回的所有字段,无论它们有多复杂和多少连接。我想调用一个函数,它返回给我,将在特定查询中返回的所有字段,以及字段信息,如表格中的字段。
在使用php的mysql中,我有命令mysql_field_table
,在这个命令中我传递了结果对象和字段索引,这个命令为我返回了表名。
嗯,这是我的梦想,从查询中的字段索引中获取表名,如:
SELECT * FROM TableOne Left Join Table2 ON Table2.MasterField = Table1.KeyField
答案 0 :(得分:12)
您可以使用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;