bert: Spaltennamen einer SQL-Abfrage auslesen

Beitrag lesen

Eigentlich sollte das eine ganz einfache Frage sein. In meiner Anwendung gibt es ein gutes Dutzend Auswertungen und vermutlich werden es bald noch mehr sein. Um den Programmcode nicht ändern zu müssen, habe ich für jede benötigte Auswertung eine sql-Datei in ein Verzeichnis gelegt. Der Nutzer kann dann eine aus dieser Liste auswählen und kriegt das Ergebnis als XLS-Datei.

Im einfachsten Fall steht in einer solchen Datei: "SELECT * FROM TableXY" oder "SELECT a,b FROM viewXY"

Für eine weitere Auswertung brauche ich (oder ein cleverer Nutzer) nur ein SQL-Statement zu formulieren und das als Datei abzulegen.

Aber an irgendeiner Stelle der "dynamischen Konfiguration" wirst Du doch die Feldliste haben, oder? Daraus kannst Du dann die Spaltenüberschriften bilden und brauchst dann später nur noch das Ergebnis von fetchrow_arrayref nacheinander abzuarbeiten.

Eigentlich ist über die Formulierung des SELECT ja alles über die Reihenfolge der Felder gesagt. Klar, ich kann in die Dateien zusätzlich noch eine Feldreihenfolge hinterlegen, z.B.:

REIHENFOLGE:Feld1,Feld2,...
SELECT * FROM TableXY

Das ist doch aber doppelt gemoppelt! In anderen Programmiersprachen kenne ich das Problem nicht. Dort setze ich per ODBC oder sonstwie eine Abfrage ab und kriege die Werte und deren Bezeichnungen und deren Reihenfolge ganz einfach zurück.

Ich bin recht neu in der PERL-Programmierung und dachte, hier müsste sich doch jemand mit sowas auskennen.

Hat denn wirklich noch keiner eine allgemeingültige Routine zum Export aus MySQL mit Perl geschrieben?