2017-08-01 109 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; 
相關問題