SQL Server, Abfrage Felder

duermer

Mitglied
Hi,

Hab en Abfrage gemacht und in dieser Abfrage entstehen noch einige andere Felder, warum aber kann ich auf diese dann nicht zugreifen?

Hab das so gemacht
Code:
PreparedStatement stmt3 = con.prepareStatement("SELECT     *, RIGHT(LEFT(CAST([Date] AS char), 10), 4) AS jahr, LEFT(RIGHT(LEFT(CAST([Date] AS char), 10), 7), 2) AS monat, LEFT(LEFT(CAST([Date] AS char), 10), "+ 
                        "2) AS tag, LEFT(RIGHT(LEFT(CAST([Date] AS char), 19), 8), 2) AS stunde, LEFT(RIGHT(RIGHT(LEFT(CAST([Date] AS char), 19), 8), 5), 2) AS minute, "+ 
                        "RIGHT(RIGHT(LEFT(CAST([Date] AS char), 19), 8), 2) AS sekunde "+
                        "FROM         table_stempel "+
                        "WHERE     (Mitarbeiter =" +sql.User+") "+
                        "ORDER BY RIGHT(LEFT(CAST([Date] AS char), 10), 4) DESC, LEFT(RIGHT(LEFT(CAST([Date] AS char), 10), 7), 2) DESC, LEFT(LEFT(CAST([Date] AS char), 10), 2) DESC, "+
                        "LEFT(RIGHT(LEFT(CAST([Date] AS char), 19), 8), 2) DESC, LEFT(RIGHT(RIGHT(LEFT(CAST([Date] AS char), 19), 8), 5), 2) DESC, "+
                        "RIGHT(RIGHT(LEFT(CAST([Date] AS char), 19), 8), 2) DESC",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
            stmt3.execute();
            ResultSet USER = stmt3.getResultSet();

            while(USER.next()){    
                System.out.println(USER.getString("jahr"));
            }

Jetzt kommt immer der Fehler:
[Microsoft][SQLServer 2000 Driver for JDBC]Spalte Index 9 ausserhalb des zulässigen Bereichs

Warum kann ich auf die in der Abfrage erzeugten Felder nicht zugreifen?

Wie kann ich auf diese Felder zugreifen?

Wäre um jede Hilfe dankbar.

Mit freundlichen Grüßen
Patrick Hennig
 
Klar kannst Du das Ganze über SQL erledigen, doch ehrlich gesagt: Dein SQL-Script ist ziemlich unleserlich.:suspekt:

Vorschlag:
- alle benötigten Felder mittels SQL auslesen, wie sie in der Tabelle stehen
- ausgelesene Daten in Java formatieren (z.B.: text = text.substring(5, text.length() - 2))

Vorteil:
Unabhängigkeit von einer speziellen Datenbank

CU schnuffie:)
 
Zurück