ResultSet / Primäschlüssel Problem

Ralph

Erfahrenes Mitglied
Hallo,

ich versuche ein Update bei einem ResultSet durchzuführen. Dies geht allerdings teilweise schief. Zum Testen hab ich mir mal folgenden Code geschrieben:

PHP:
public void test () {
        try {
            Class.forName ("com.mysql.jdbc.Driver").newInstance ();
            conn = DriverManager.getConnection (url, user, pass);
            
            String query ="SELECT ID, MD_NACHNAME, ANTRAGNR, DRMANR, BAEH, Nachname_Vers_Person1, Nachname_Vers_Person3, TLNAME, TMMANR, MD_VORNAME, BUERO,  DATE_FORMAT(la_date, '%d.%m.%Y') AS LA_DATE, DATE_FORMAT(la_date, '%H:%i') AS LA_TIME, DATE_FORMAT(la_sight_date, '%d.%m.%Y') AS LA_SIGHT_DATE, DATE_FORMAT(la_sight_date, '%H:%i') AS LA_SIGHT_TIME,  COMMENT, CONTACT_PERSON  FROM ael_dez2005 ORDER BY MD_NACHNAME";
            query = "SELECT * FROM ael_dez2005";
            
            
            Statement stmt = conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
            stmt.executeQuery (query);
            
            ResultSet rs = stmt.getResultSet ();
            

            int concurrency = rs.getConcurrency();
            if (concurrency == ResultSet.CONCUR_UPDATABLE) {
                System.out.println("updateable");
            } else {
                System.out.println("not updateable");
            }

            
            rs.first ();
            rs.updateString (5, "ALL-RV");
            rs.updateRow ();
            
        } catch (Exception ex) {
            ex.printStackTrace ();
        }
    }

Das erste Select-Statement wirft dann den Fehler

PHP:
com.mysql.jdbc.NotUpdatable: Result Set not updatable.This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, and must select all primary keys from that table.[...]

aus, sammel ich die Daten aber über das zweite Statement (Variable query), dann gibt es keinen Fehler und die Daten werden geändert. Versteh ich nicht ;)

Der Primärschlüssel ist die Spalte ID, die ich ja mit auswähle. Muss ich das noch irgendwo explizit angeben?
 
Hmm, das Problem ist anscheinend die Funktion DATE_FORMAT (ohne die Spalten klappt es) im SQL-Statement... weiß jemand vielleicht warum oder wie man das umgehen kann?
 
Zurück