Ciao a tutti! Ho questo metodo che dovrebbe eliminare da un catalogo una voce selezionando un campo (NUMERO) con un determinato valore. Il problema č che questo valore č un INTEGER che si autoincrementa, e temo che la query funzioni solo passando come valori stringhe, allora questo č il codice per creare la tabella del DB.
codice:
st.executeUpdate("CREATE TABLE TABELLA_PRENOTAZIONI" + "(ID VARCHAR(30), " + " NOME VARCHAR(30) NOT NULL, " +" COGNOME VARCHAR(30) NOT NULL, "+ "LISTA VARCHAR(60),"+"DATA VARCHAR(8),"+"ORA VARCHAR(5),"+"TOTALE DOUBLE,"+"CONSEGNATA VARCHAR(2),"+"NUMERO INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), "+"PRIMARY KEY(ID,DATA))");
Questo il metodo per eseguire la cancellazione di un record:
codice:
public boolean removePrenotazione(String numero){
try {
// registrazione driver JDBC per Derby DB
DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
Connection conn = DriverManager.getConnection(url, user, pwd);
Statement st = conn.createStatement();
st.executeUpdate("DELETE FROM TABELLA_PRENOTAZIONI WHERE NUMERO='"+numero+"'");
// rs.close();
st.close();
conn.close();
}
catch (SQLException e) {
System.out.println(e.getMessage());
return false;
}
return true;
}
Il fatto che NUMERO sia un INTEGER č forse un problema nell'eseguire questa query?
La voce del DB non viene rimossa...