sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué obtengo el error de JPEG 42 cuando está almacenado en una base de datos?

Se informa el error de JPEG 42 cuando se trunca la secuencia. Por ejemplo, si intenta cargar un archivo de longitud cero en una TJPEGImage entonces el error 42 es el resultado final.

Si se muestran algunas imágenes, pero no todas, entonces la explicación más probable es que los datos de alguna manera no están haciendo el viaje de ida y vuelta a la base de datos y viceversa.

Verifique el tamaño del campo BLOB cuando lo escriba. Compruebe que coincida con el tamaño del archivo cuando lo escriba en un archivo de disco. Verifique que el archivo del disco sea un JPEG válido. Luego confirme que el campo BLOB tiene exactamente la misma longitud cuando lo vuelva a leer. Tal vez haya algún problema con su código de base de datos y la transmisión se esté truncando.

Entonces, el primer paso aquí es confirmar que puede recuperar exactamente los mismos datos que ingresó originalmente en la base de datos.

El único otro pensamiento que tengo es que el gráfico en el control de imagen no siempre es un JPEG. El código que usas para cargar la imagen, Image1.Picture.Graphic.LoadFromStream() asume que los datos son un JPEG. Si ha guardado algo que no sea un JPEG, entonces LoadFromStream() fallaría.