Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    71

    [JAVA] Modificare un campo blob

    Grazie hai suggerimenti trovati sono riuscito ad immagazzinare un mio oggetto in un db.
    Ora però ho trovato qualche difficoltà a aggiornare la colonna, non mi sembra di aver trovato nulla nel forum e quindi scrivo.

    Ho fatto due prove una che funziona:

    codice:
    String query = "UPDATE tabella SET Cognome = ? WHERE Nome = ?";
    PreparedStatement pst = con.prepareStatement(query);
    
    pst.setString(1, "Rossi");
    pst.setString(2, "Paolo");
    
    int pp = pst.executeUpdate();
    In questo caso funziona tutto alla grande, i campi in gioco sono due char.
    Nel prossimo caso invece si arrabbia:

    codice:
    String query = "UPDATE tabella SET Oggetto = ? WHERE Nome = ?";
    PreparedStatement pst = con.prepareStatement(query);
    
    MyObject oggetto = new Myobject();
    ByteArrayOutputStream baos = new  ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(baos);
    oos.writeObject(oggetto);
    byte[] objectByte = baos.toByteArray();
    baos.close();
    oos.close();
    ByteArrayInputStream bais = new ByteArrayInputStream(objectByte);
    
    pst.setBinaryStream(1, bais, objectByte.length);
    pst.setString(2, "Paolo");
    
    int pp = pst.executeUpdate();
    L'errore che mi da è il seguente, e puna alla riga "int pp = pst.executeUpdate();":

    [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 3.
    getSQLState() = 07001
    getErrorCode() = -3010

    Il db che sto utilizzando è access, poi volevo passare a oracle, ed il campo in questione Indirizzo è definito OLE, secondo me potebbe essere questo, ma non capisco perchè.

    Completo dicendo che le istruzioni per ottenere il byte[] da passare sono le stesse che utilizzo per fare la insert del campo, ed in quel caso mi funzionano a pennello.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    71
    Mi sa che era una stupidata, probabilmente avevo scritto male il nome di un campo ;(.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.