如何从 SQL 服务器和 FIREDAC 的连接查询中的列中获取 table 名称?
How to get the table name from a column in a join query with SQL Server and FIREDAC?
我在 TFDQuery
(FireDAC) 上寻找元数据。
我有这个查询:
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Code = t2.code
我想知道列信息(table名称,table中的真实列名,....)
我发现这个 post : How to get the table name from a field in a join query with MSSQL? (mysql_field_table equivalent) 但我在 FireDac 上没有相同的结构。
正如 RBA 已经提到的,您必须首先在连接中启用 ExtendedMetaData。完成后,您可以通过 query.GetFieldColumn(field)
获取字段列描述,并使用其 ActualOriginTabName
和 ActualOriginColName
属性访问 table 和列名称。
column := query.GetFieldColumn(field);
orgTableName := column.ActualOriginTabName;
orgColumnName := column.ActualOriginColName;
我在 TFDQuery
(FireDAC) 上寻找元数据。
我有这个查询:
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Code = t2.code
我想知道列信息(table名称,table中的真实列名,....)
我发现这个 post : How to get the table name from a field in a join query with MSSQL? (mysql_field_table equivalent) 但我在 FireDac 上没有相同的结构。
正如 RBA 已经提到的,您必须首先在连接中启用 ExtendedMetaData。完成后,您可以通过 query.GetFieldColumn(field)
获取字段列描述,并使用其 ActualOriginTabName
和 ActualOriginColName
属性访问 table 和列名称。
column := query.GetFieldColumn(field);
orgTableName := column.ActualOriginTabName;
orgColumnName := column.ActualOriginColName;