sql-server - 如何使用 MSSQL 从联接查询中的字段获取表名? (mysql_field_table 等效)

标签 sql-server delphi ado tablename

我正在使用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/

相关文章:

asp.net - 使用 NHibernate 实现多语言域对象的最佳方法是什么?

sql-server - 临时表的主键已经存在

delphi - Delphi 托盘组件

Delphi ADO 内存消耗

sql - 使用 "with as"的输出几次

sql - 如何在SQL中显示两个给定日期之间的所有日期

delphi - RTTI TRttiMethod.Invoke、stdcall 和 const 参数的错误

delphi - Firemonkey - 更新视觉组件

ms-access - 代码在 DAO 中没问题,但在 ADO 中出现运行时错误 '3021'

VBA、ADO.Connection 和查询参数