Hallo,
ich versuche ein Update bei einem ResultSet durchzuführen. Dies geht allerdings teilweise schief. Zum Testen hab ich mir mal folgenden Code geschrieben:
Das erste Select-Statement wirft dann den Fehler
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?
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?