Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Campos BLOB (https://www.clubdelphi.com/foros/showthread.php?t=38695)

TJose 23-12-2006 20:20:41

Campos BLOB
 
Hola Foro!

En este caso utilizo firebird 1.5.3 sobre windows 2000.

defino el dominio dImagen como

Código SQL [-]
create domain dImagen as
blob sub_type 0
segment size 100;

y mi base de datos con tamaño de pagina igual a 2048

Cuando guardo una imagen pequeña, digamos 20K, mi aplicación (y firebird) funcionan bien, pero con imágenes algo más grandes 100k o más, mi aplicativo no produce ningún error y se guarda aparentemente todo bien, pero cuando intento recuperar la foto, tanto desde mi aplicación, como con algún administrador de IB/FB (en este caso IBExpert), veo mis fotos truncadas, sólo la parte superior.
El código que utilizo (C++Builder) ya lo había aplicado en otros programas y guardaba archivos de varios MB (no imagenes) y nunca me los truncó.

Tiene algo que ver la definición de mi BLOB o el tamaño de pagina de la base con este error?

Saludos
TJose

defcon1_es 26-12-2006 18:14:52

Puede ser el componente...
 
Hola TJose.

¿Has comprobado si el problema es por el tipo de componente que usas para visualizar/mostrar las imágenes?

En un DBImage, por ejemplo, deberias poner su propiedad Stretch = True para que reajuste el tamaño de la imagen al tamaño del componente...

TJose 27-12-2006 03:35:26

Hola defcon1_es

utilizo dbExpress, pero me parece no pasa por ese lado, ya que cuando levanto la imagen, la veo como si estuviera completa pero sólo 1/3 ó 1/4 de la parte superior. No hay un problema con Stretch. Además utilizando IBExpert, que tiene una opción para ver campos BLOB, también sucede lo mismo.
Me inclino por pensar que es un problema al guardar la imagen o en la definición del campo.

Tanto para guardar como para cargar las imágenes utilizo TBlobField

Saludos y gracias

TJose

TJose 28-12-2006 16:19:44

Hola

Yo escribí:

Cita:

El código que utilizo (C++Builder) ya lo había aplicado en otros programas y guardaba archivos de varios MB (no imagenes) y nunca me los truncó.
...pues me equivoqué, ya que cuando guardaba estos archivos de varios megas lo había escrito utilizando IBX, y ahora utilizo dbExpress con el driver UIB, que es bastante vieja la versión que tengo.
Para el que no utiliza dbExpress, el componente de conexión TSQLConnection tiene una propiedad BlobSize que asignándole -1, equivale a decir que es ilimitado, y TSQLDataSet tiene la propiedad MaxBlobSize que asignándole 0 toma por defecto el BlobSize del TSQLConnection. Así que por este lado están bien seteados los componentes.

Ahora estoy por probar de actualizar el driver de dbExpress (UIB). No se me ocurre otra cosa.

Saludos
TJose

TJose 28-12-2006 18:48:20

¡Problema Solucionado!

Definitivamente era la versión del driver. Bajé una actualización y empezó a funcionar como corresponde que lo hiciera.

Saludos a todos!
TJose


La franja horaria es GMT +2. Ahora son las 21:06:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi