Foros del Web » Programación para mayores de 30 ;) » Java »

Insertar imagen en Base Datos, sobre variable BLOB

Estas en el tema de Insertar imagen en Base Datos, sobre variable BLOB en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/07/2004, 04:25
 
Fecha de Ingreso: julio-2004
Mensajes: 2
Antigüedad: 19 años, 9 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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:02.