如何从MSSQL的连接查询中的字段中获取表名?(相当于mysql_field_table)

use*_*868 9 sql-server delphi ado tablename

我正在使用Delphi中的查询管理器ADO,我需要知道查询将返回的所有字段,无论它们有多复杂和多少连接.我想调用一个函数,返回给我,将在特定查询中返回的所有字段,以及字段信息,如表格中的字段.

在使用php的mysql中,我有命令mysql_field_table,在这个命令中我传递结果对象和字段索引,这个命令为我返回表名.

嗯,这是我的梦想,从查询中的字段索引中获取表名,如:

SELECT * FROM TableOne Left Join Table2 ON Table2.MasterField = Table1.KeyField
Run Code Online (Sandbox Code Playgroud)

kob*_*bik 12

您可以使用a 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;
Run Code Online (Sandbox Code Playgroud)

  • @whosrdaddy,Iv'e将它用于MSSQL和MS-ACCESS.它取决于提供者(除其他外).查看相关信息:[使用ADO,RDO,DAO时可以使用表名](http://support.microsoft.com/kb/204848) (6认同)