2017-08-01 161 views
3

我正在寻找在TFDQuery(FireDAC)上获取元数据。如何从SQL Server和FIREDAC的连接查询中的列中获取表名?

我有这个疑问:

SELECT * 
FROM Table1 t1 
INNER JOIN Table2 t2 ON t1.Code = t2.code 

我想知道列的信息(表名称,表中的实际列名,....)

我觉得这篇文章: How to get the table name from a field in a join query with MSSQL? (mysql_field_table equivalent)但我在FireDac上没有相同的结构。

+0

我想你还需要获取元数据。我可以尝试稍后再检查一下。 – Victoria

+1

看看http://docwiki.embarcadero.com/RADStudio/XE8/en/Extended_Metadata_(FireDAC)和http://docwiki.embarcadero.com/RADStudio/XE8/en/Working_with_Metadata_(FireDAC) – RBA

+0

@RBA,是的,我的意思是这些(他们被称为扩展元数据,而不仅仅是元数据):) – Victoria

回答

1

正如RBA已经提到您必须启用ExtendedMetaData在连接第一。完成后,您可以通过query.GetFieldColumn(field)拿到野外列描述并与其ActualOriginTabNameActualOriginColName属性访问表和列名。

column := query.GetFieldColumn(field); 
orgTableName := column.ActualOriginTabName; 
orgColumnName := column.ActualOriginColName; 
相关问题