String sqlU = "INSERT INTO TEST VALUES( ?,?)";
PreparedStatement pstmt = con.prepareStatement(sqlU);
File fi = new File("C:\\Delibera.sxw");
InputStream fis = new BufferedInputStream(new FileInputStream(fi));
pstmt.setString(1,"1234");
pstmt.setBinaryStream(2,fis,fis.available());
pstmt.executeUpdate(); oppure pstmt.execute();
pstmt.close();
ma quando lo mando in esecuzione mi da l'errore come sotto:
java.sql.SQLException: Eccezione IO: Connection reset
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2061
)
at
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:2709)
at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
ment.java:589)
at openoffice.Model.insertBlob(Model.java:112)
at openoffice.Model.main(Model.java:26)
Qualcuno mi sa dire come posso risolvere questo problema grazie in anticipo.
Almeno fino alla versione 8i, per scrivere in un blob su oracle devi prima
fare una insert con un empty blob, se non sbaglio: leggi la documentazione
specifica oracle riguardo alla programmazione jdbc, c'è un capitolo apposta
che parla di come scrivere nei blob.
Si lo so infati per inserirlo faccio cosi come tu dici vedi sotto :
public void getBlob(Connection con)throws java.sql.SQLException
{
String sqlS = "SELECT * FROM TEST2";
Statement pstmt = con.createStatement();
ResultSet set = pstmt.executeQuery(sqlS);
set.next();
//byte testo[] = set.getBytes(2);
java.sql.Blob blob
=((oracle.jdbc.OracleResultSet)set).getBLOB(2);//set.getBlob(2);
try
{
InputStream in = blob.getBinaryStream();
System.out.println("blob= "+in.available());
}
}
public void insertBlob(Connection con)throws java.sql.SQLException
{
try
{
File fi = new File("C:\\Delibera.sxw");
String sqlNewRow = "INSERT INTO TEST2 VALUES (?,EMPTY_BLOB())",
sqlSetBlob = "UPDATE TEST2 SET DATI = ? WHERE ID = ?";
PreparedStatement pstmt = con.prepareStatement(sqlNewRow);
pstmt.setString(1,fi.getName());
pstmt.execute();
pstmt.close();
FileInputStream input = new FileInputStream(fi);
InputStream fis = new BufferedInputStream(new FileInputStream(fi));
pstmt = con.prepareStatement(sqlSetBlob);
pstmt.setString(1,fi.getName());
pstmt.setBinaryStream(2,fis,fis.available());
pstmt.executeUpdate();
pstmt.close();
}
catch (SQLException se)
{
se.printStackTrace();
}
catch(IOException io)
{
io.printStackTrace();
}
}
>
>> Almeno fino alla versione 8i, per scrivere in un blob su oracle devi prima
>> fare una insert con un empty blob...
>
>Si lo so infati per inserirlo faccio cosi come tu dici vedi sotto :
>
No, non lo sai o almeno non lo sapevi, questo e' il tuo post originale:
> String sqlU = "INSERT INTO TEST VALUES( ?,?)";
> PreparedStatement pstmt = con.prepareStatement(sqlU);
> File fi = new File("C:\\Delibera.sxw");
> InputStream fis = new BufferedInputStream(new FileInputStream(fi));
> pstmt.setString(1,"1234");
> pstmt.setBinaryStream(2,fis,fis.available());
> pstmt.executeUpdate(); oppure pstmt.execute();
> pstmt.close();
Comunque di BLOB e CLOB ne parlammo tempo fa, vedi questo link su google:
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&th=f2d63b44faf7b506&rnum=1
Ciao,
Bruno.
--
| Bruno Bossola
| A Java Software Engineer :-)
| http://digilander.iol.it/bbossola
|
| Membro del JUG Torino - http://www.jugtorino.it
|
Alla luce di questo m chiedevo se era possibile inserire l'immagine nel file
Jar e utilizzarla da li.
Grazia C.
>Alla luce di questo m chiedevo se era possibile inserire l'immagine nel file
>Jar e utilizzarla da li.
>
Uh... si ma sei tremendamente off-topic con questo thread :-)
Comunque, getResource() e getResourceAsStream() per leggere dal jar dell'applicazione: dai
un'occhiata alla documentazione:
http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Class.html#getResource(java.lang.String)
Per operazioni particolari sul jar:
http://java.sun.com/docs/books/tutorial/jar/api/jarclassloader.html
> Alla luce di questo m chiedevo se era possibile inserire l'immagine
> nel file Jar e utilizzarla da li.
http://space.tin.it/computer/csadun/resjars.html
--
Life's something u don't get out alive..
ObjectZone - http://space.tin.it/computer/csadun