Hallo Gemeinde,
ich stehe vor einem mir unerklärlichem Rätsel:
Also, ich habe auf einen Button (BtnOptionsDatabaseEditorDel) eine SQL Löschanweisung gelegt.
Diese Anweisung funktioniert einwandfrei, wenn ich sie in der Mainfunktion ausführe. Wenn ich jedoch den dafür vorgesehenen Button klicke, bekomme ich einen Derby Timeout:
Ich finde den Grund dafür einfach nicht. Soweit ich das verstehe, bedeutet der Fehler, dass er die DB nicht sperren kann, weil sie wohl schon belegt ist, oder so.
Aber sie ist nicht mehrfach in Benutzung und die selbe Löschfunktion funktioniert in der Mainfunktion, ohne GUI dazwischen...
Bin echt am verzweifeln und hoffe, dass ihr mir helfen könnt ...
MFG
ich stehe vor einem mir unerklärlichem Rätsel:
Java:
public static Connection sqlcon() throws Exception {
// Verbindungsparameter f�r die DB erstellen
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Properties properties = new Properties();
properties.put("user", "quiz");
properties.put("password", "quiz");
Connection connection = DriverManager.getConnection("jdbc:derby:quizDB;create=true", properties);
// Verbindung ende
//connection.close();
return connection;
}
private void BtnOptionsDatabaseEditorDelActionPerformed(java.awt.event.ActionEvent evt) {
try {
Statement statement = sqlcon().createStatement();
int rIndex = TableOptionsDatabaseEditorQry.getSelectedRow();
int rFID = (Integer)TableOptionsDatabaseEditorQry.getValueAt(rIndex, 0);
if( (rFID != 0) || (rFID == -1) ) {
statement.executeUpdate("DELETE FROM FRAGE WHERE FID = "+rFID);
}
statement.close();
// ResetOptionsDatabase();
// RefreshTableFragen();
} catch (SQLException ex) {
Logger.getLogger(TestQgui.class.getName()).log(Level.SEVERE, null, ex);
} catch (Exception ex) {
Logger.getLogger(TestQgui.class.getName()).log(Level.SEVERE, null, ex);
}
}
Also, ich habe auf einen Button (BtnOptionsDatabaseEditorDel) eine SQL Löschanweisung gelegt.
Diese Anweisung funktioniert einwandfrei, wenn ich sie in der Mainfunktion ausführe. Wenn ich jedoch den dafür vorgesehenen Button klicke, bekomme ich einen Derby Timeout:
Code:
java.sql.SQLTransactionRollbackException: A lock could not be obtained within the time requested
Ich finde den Grund dafür einfach nicht. Soweit ich das verstehe, bedeutet der Fehler, dass er die DB nicht sperren kann, weil sie wohl schon belegt ist, oder so.
Aber sie ist nicht mehrfach in Benutzung und die selbe Löschfunktion funktioniert in der Mainfunktion, ohne GUI dazwischen...
Bin echt am verzweifeln und hoffe, dass ihr mir helfen könnt ...
MFG