Wenn du dir die Fields des DataSets anschaust, dann ist dort (abhängig von der Komponente/
Query) auch der TableName enthalten.
Problematisch kann es bei Feldern aus SubSelects werden.
Alle beteiligten Tabellen herauszufinden wird schwierig, weil sich das DataSet nur um den CommandText kümmert ohne diesen zu verstehen (wird einfach nur an die Connection/Datenbank geschickt) und die zurückgelieferten Felder und Datensätze bereitstellt.
Ist also eine Tabelle beteiligt, aus der keine Felder im Resultset auftauchen, dann weiß das DataSet nicht, dass diese Tabelle beteiligt ist (ist dem DataSet auch relativ egal).
Du müsstest die Datenbank fragen, welche Tabellen bei der
Query im Spiel sind.