Oppure

Loading
10/02/11 22:33
SnowDruid
Salve,
solo una curiosità visto che questa è una di quelle cose che dovrebbe essere lampante ed invece non riesco a capire il problema. :_doubt:

Qualcuno per favore mi può dire cosa c'è di sbagliato nel seguente codice? In esecuzione restituisce "Errore nella sintassi dell'istruzione UPDATE".

public void update(Cliente c) {
        if (isConnected()) {
            PreparedStatement stmt = null;
            try {
                stmt = this.connection.prepareStatement("UPDATE Contatti SET "
                        + "Codice='?', Denominazione='?', Indirizzo='?', CAP='?', Citta='?', Nazione='?', "
                        + "CF='?', PIVA='?', Telefono1='?', Telefono2='?', Fax='?', Email='?', "
                        + "IBAN='?', Pagamento='?', Accisa1='?', Accisa2='?', Accisa3='?', Ruolo1='?', Ruolo2='?', Ruolo3='?', Note='?', Tipo='?' "
                        + "WHERE ID='?'");
                stmt.setString(1, c.getCodice());
                stmt.setString(2, c.getDenominazione());
                stmt.setString(3, c.getIndirizzo());
                stmt.setString(4, c.getCAP());
                stmt.setString(5, c.getCitta());
                stmt.setInt(6, c.getNazione());
                stmt.setString(7, c.getCodiceFiscale());
                stmt.setString(8, c.getPartitaIVA());
                stmt.setString(9, c.getTelefono());
                stmt.setString(10, c.getCellulare());
                stmt.setString(11, c.getFax());
                stmt.setString(12, c.getEmail());
                stmt.setString(13, c.getIBAN());
                stmt.setString(14, c.getMetodoPagamento());
                stmt.setString(15, c.getAccisa1());
                stmt.setString(16, c.getAccisa2());
                stmt.setString(17, c.getAccisa3());
                stmt.setInt(18, c.getRuolo1());
                stmt.setInt(19, c.getRuolo2());
                stmt.setInt(20, c.getRuolo3());
                stmt.setString(21, c.getNote());
                stmt.setString(22, c.getTipo());
                stmt.setInt(23, c.getID());

                stmt.executeUpdate();
                // this.connection.commit();

            } catch (SQLException ex) {
                Logger.getLogger(DBEngine.class.getName()).log(Level.SEVERE, null, ex);
            } finally {
                try {
                    stmt.close();
                } catch (Exception ex) {
                    Logger.getLogger(DBEngine.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }


Ho provato anche non mettendo tutti gli apici agli argomenti, il risultato non cambia. :noway:

Grazie!
Fabio.
Ultima modifica effettuata da SnowDruid 10/02/11 22:36
aaa
11/02/11 8:21
Bonny
I parametri dell'istruzione SQL non vanno separati da virgola...
e nemmeno i apici...
es:
String sql = "UPDATE nometabella  SET nomeattributo = ? " +
                  "WHERE ID = ? ";
 PreparedStatement stmt = coonection.prepareStatement(sql);
 
//e poi asssegni i valori come hai fatto tu...


aaa