Wenn dein Programm den SQL bekommt, kannst du den SQL ja parsen, m.a.W, also selber analysieren.
Indirekt geht das nach dem Prepare auch per "describe statement", dabei erhältst du dann in einer SQLDA-Tabelle die Ergebnisnamen des Select's.
Auf den Ursprungsnamen oder dieTabelle bei Joins kommst du da leider nicht, wenn Umbenennungen im SQL erfolgen.