Guten Tag liebe Community,
ich habe ein Problem mit dem ResultSetMetaData des ResultSets von java.sql:
Problem anhand eines Beispiels:
SQL:
In einer Tabelle WIEGESATZ gibt es 3 Felder... dem Rechnungsempfänger, dem Kunden, und einem Spediteur.. diese 3 sind FK und beziehen sich auf den PK der Tabelle ADRESSE.
Was soll erreicht werden/Wozu brauch ich den Alias?
Dynamische Darstellung der Daten auf der GUI.. so kann der Kunde selbst entscheiden welche Spalten er haben möchte, und welche nicht.
Lösungsweg bisher:
Da es in einigen Tabellen gleichnamige Felder gibt, oder auch wie oben beschrieben SQL-Statements mit mehreren Joins auf die selbe Tabelle geben kann muss der Alias-Name bei der Auswahl bekannt sein.
rsMeta ist die ResultSetMetaData des ResultSet's!
So bekomme ich z.B. "Material.Name", "Material.ID" etc!
Nun zum Problem:
der Befehl "getTableName(col:int)" vom ResultsetMetaData gibt mir IMMER nur den original Tabellen-Namen zurück, aber nicht den Alias-Tabellennamen, welchen ich in dem SQL-Statement (in den Joins) festgelegt habe.
Also ich bekomme immer "Adresse.Name" bei RechEmpf, Kunde sowie Spediteur.
Wenn ich debugge und mir die genauen Felder vom ResultSetMetaData anschaue, dann sehe ich unter der Variable "tableName" meinen gewünschten Alias-Namen, jeddoch gibt es keine Methode um diesen abzurufen.. (getTableName liefert die Variable "originalTableName" aus ResultsetMetaData!)
Gibt es also eine Möglichkeit an diese Variable zu gelangen?
Danke
Falls ich mich zu undeutlich ausgedrückt habe, bitte Bescheid geben.. dann versuche ich es besser zu machen!
ich habe ein Problem mit dem ResultSetMetaData des ResultSets von java.sql:
Problem anhand eines Beispiels:
SQL:
SQL:
SELECT WIEGESATZ.*, RECHEMPF.*, KUNDE.*, SPEDITEUR.*
FROM WIEGESATZ
LEFT JOIN ADRESSE AS RECHEMPF ON WIEGESATZ.RechEmpf = RECHEMPF.SysID
LEFT JOIN ADRESSE AS KUNDE ON WIEGESATZ.Kunde = KUNDE.SysID
LEFT JOIN ADRESSE AS SPEDITEUR ON WIEGESATZ.Spediteur = SPEDITEUR.SysID;
In einer Tabelle WIEGESATZ gibt es 3 Felder... dem Rechnungsempfänger, dem Kunden, und einem Spediteur.. diese 3 sind FK und beziehen sich auf den PK der Tabelle ADRESSE.
Was soll erreicht werden/Wozu brauch ich den Alias?
Dynamische Darstellung der Daten auf der GUI.. so kann der Kunde selbst entscheiden welche Spalten er haben möchte, und welche nicht.
Lösungsweg bisher:
Da es in einigen Tabellen gleichnamige Felder gibt, oder auch wie oben beschrieben SQL-Statements mit mehreren Joins auf die selbe Tabelle geben kann muss der Alias-Name bei der Auswahl bekannt sein.
rsMeta ist die ResultSetMetaData des ResultSet's!
Java:
rsMeta.getTableName(col+1) + "." + this.rsMeta.getColumnLabel(col+1)
So bekomme ich z.B. "Material.Name", "Material.ID" etc!
Nun zum Problem:
der Befehl "getTableName(col:int)" vom ResultsetMetaData gibt mir IMMER nur den original Tabellen-Namen zurück, aber nicht den Alias-Tabellennamen, welchen ich in dem SQL-Statement (in den Joins) festgelegt habe.
Also ich bekomme immer "Adresse.Name" bei RechEmpf, Kunde sowie Spediteur.
Wenn ich debugge und mir die genauen Felder vom ResultSetMetaData anschaue, dann sehe ich unter der Variable "tableName" meinen gewünschten Alias-Namen, jeddoch gibt es keine Methode um diesen abzurufen.. (getTableName liefert die Variable "originalTableName" aus ResultsetMetaData!)
Gibt es also eine Möglichkeit an diese Variable zu gelangen?
Danke
Falls ich mich zu undeutlich ausgedrückt habe, bitte Bescheid geben.. dann versuche ich es besser zu machen!