Hallo zusammen,
ich habe eine Frage, bzw ein im Moment schweriegendes Problem...
ich habe eine Array von CachedRowSets, die meine Datenbank wiederspiegeln.
Wenn ich jetzt eines updaten will, also eine Zeile in der lokalen kopie ändern möchte verwende ich da zu folgenden Schnipsel:
wobei zeile [] immer den komplettem Inhalt der Zeile enthält die geändert werden soll.
Das ergebnis ist: 1. es wird "false" ausgeben...
2. beim zurück schreiben in die Datenbank kommt folgender Stack:
Und hier noch die Mehtode in der die Exceptions auftauchen:
Ich hoffe, ich habe alles verständlich dargelegt und es gibt jemand der mir helfen kann.
Gruß Seve
ich habe eine Frage, bzw ein im Moment schweriegendes Problem...
ich habe eine Array von CachedRowSets, die meine Datenbank wiederspiegeln.
Wenn ich jetzt eines updaten will, also eine Zeile in der lokalen kopie ändern möchte verwende ich da zu folgenden Schnipsel:
Code:
public static void update (int index, String [] zeile, int nr)
{
/*
* Updatet die bezeichnete Zeile aus der Kopie der Tabelle
*/
try
{
CRS [index].absolute(nr);
for (int x = 0; x < zeile.length; x ++)
{
CRS [index].setString(x+1, zeile[x]);
}
CRS [index].updateRow();
System.out.println (CRS [index].rowUpdated());
}
catch (SQLException e)
{
e.printStackTrace();
}
catch (ArrayIndexOutOfBoundsException e)
{
throw new IllegalArgumentException ("Der Tabellenindex ist unbekannt"«»);
}
}
wobei zeile [] immer den komplettem Inhalt der Zeile enthält die geändert werden soll.
Das ergebnis ist: 1. es wird "false" ausgeben...
2. beim zurück schreiben in die Datenbank kommt folgender Stack:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3288)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3272)
at com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4108)
at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:3527)
at com.sun.rowset.internal.CachedRowSetReader.decodeParams(Unknown Source)
at com.sun.rowset.internal.CachedRowSetReader.readData(Unknown Source)
at com.sun.rowset.CachedRowSetImpl.execute(Unknown Source)
at com.sun.rowset.internal.CachedRowSetWriter.commit(Unknown Source)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(Unknown Source)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(Unknown Source)
at dbaccess.DBAccess2.speichern(DBAccess2.java:132)
at dbaccess.DBAccess2.speichern(DBAccess2.java:106)
at dbaccess.tester.<init>(tester.java:17)
at gui.Main.main(Main.java:92)
javax.sql.rowset.spi.SyncProviderException: Parameter index out of range (1 > number of parameters, which is 0).
at com.sun.rowset.CachedRowSetImpl.acceptChanges(Unknown Source)
at com.sun.rowset.CachedRowSetImpl.acceptChanges(Unknown Source)
at dbaccess.DBAccess2.speichern(DBAccess2.java:132)
at dbaccess.DBAccess2.speichern(DBAccess2.java:106)
at dbaccess.tester.<init>(tester.java:17)
at gui.Main.main(Main.java:92)
Und hier noch die Mehtode in der die Exceptions auftauchen:
Code:
private static void speichern (int x)
{
try
{
CRS [x].acceptChanges(gui.Main.conn);
}
catch (SQLException e)
{
e.printStackTrace();
}
}
Ich hoffe, ich habe alles verständlich dargelegt und es gibt jemand der mir helfen kann.
Gruß Seve