Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2004, 04:25
Ana Rosa
 
Fecha de Ingreso: julio-2004
Mensajes: 2
Antigüedad: 19 años, 10 meses
Puntos: 0
Insertar imagen en Base Datos, sobre variable BLOB

Hola a todos!:

Antes de empezar voy a deciros lo que estoy utilizando:

Oracle9i
Jakarta-Tomcat-4.1.27
Java 2 Platform Std Ed. v1.4.1
JDBC-ODBC

A continuación, el problema que tengo. Vereis, quiero insertar una
imagen en la base de datos, que tiene unos 46 kb, más o menos, sabiendo
que en la base de datos, lo almaceno en una variable de tipo BLOB. Para
ello, empleo la siguiente secuencia de instrucciones, haciendo una
llamada a un procedimiento almacenado de la base de datos:

try
{
File fichero = new File ("c:\imagen.jpg");
FileInputStream canal = new FileInputStream (fichero);
byte bytes [] = new byte [(int) fichero.length ()];
int leidos = canal.read (bytes);
String sql = "{call paquete.InsertarImagen (1, ?)}";
CallableStatement cstmt = conexion.prepareCall (sql);
cstmt.setBytes (1, bytes);
cstmt.execute ();
cstmt.close ();
canal.close ();
}
catch (Exception e)
{
// Recoger excepción
}

Para imágenes de tamaño inferior a esta, no he tenido ningún problema.
Sin embargo, para imágenes de 46 kb o superiores, me sale el mensaje:

"Conversión ilógica o no implementada".

Lo más gracioso de todo, es que si puedo insertar esa imagen haciendo
uso de PreparedStatement, pero desgraciadamente tengo que utilizar el
procedimiento almacenado de la base de datos.

¿Alguien puede echarme un cable? ¿o conoceis de alguien que pueda
ayudarme?

Besos a todos, y que paseis unas buenas vacaciones.