2017-08-01 4 views
3

Ich suche Metadaten auf einem TFDQuery (FireDAC).Wie erhält man den Tabellennamen aus einer Spalte in einer Join-Abfrage mit SQL Server und FIREDAC?

Ich habe diese Anfrage:

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

Ich mag die Spalteninformationen kennen (Tabellennamen, die realen Spaltennamen in der Tabelle, ....)

Ich finde diesen Beitrag: How to get the table name from a field in a join query with MSSQL? (mysql_field_table equivalent) aber ich habe nicht die gleiche Struktur auf FireDac.

+0

Ich denke, Sie müssen auch Metadaten abrufen. Ich kann versuchen, das später zu überprüfen. – Victoria

+1

Werfen Sie einen Blick auf http://docwiki.embarcadero.com/RADStudio/XE8/en/Extended_Metadata_(FireDAC) und http://docwiki.embarcadero.com/RADStudio/XE8/en/Working_with_Metadata_(FireDAC) – RBA

+0

@RBA, Ja, ich meinte diese (sie heißen erweiterte Metadaten, nicht nur Metadaten) :) – Victoria

Antwort

1

Als RBA bereits erwähnt, müssen Sie zuerst ExtendedMetaData in der Verbindung aktivieren. Wenn Sie fertig sind, können Sie die Feldspaltenbeschreibung über query.GetFieldColumn(field) abrufen und auf den Tabellen- und Spaltennamen mit seinen Eigenschaften ActualOriginTabName und ActualOriginColName zugreifen.

column := query.GetFieldColumn(field); 
orgTableName := column.ActualOriginTabName; 
orgColumnName := column.ActualOriginColName; 
Verwandte Themen