PDA

Ver la Versión Completa : Misterioso BLOB SIZE


QuarkBcn
03-09-2008, 15:17:01
Hola a todos

El problema misterioso es el siguiente, tengo una funcion que lee un campo BLOB de una tabla en MS SQL-Server, y con el blob obtenido crea un fichero con extension QRP (es decir un fichero Qreport). Hasta aqui todo perfecto, el problema y MISTERIO viene dado porque la misma función ejecutada en un formulario de pruebas retorna correctamente el blob.size, pero no hace lo mismo cuando copio la función en la aplicación en la que debe usarse.


Blob := TBlobStream.Create(Query1.FieldByName('CAMPOBLOB') as TblobField, bmRead);
try
blob.Seek(0, soFromBeginning);
with TFileStream.Create( fichero, fmCreate) do
try
CopyFrom(blob, blob.Size)
finally
Free
end;
finally
blob.Free
end;


fichero: contiene el path y el nombre del fichero a crear.

En la funcion que trabaja y crea correctamente el fichero el blob.size vale 1144560 y en la que no crea el tamaño correcto de fichero, y consecuentemente el fichero es ilegible, por incompleto, vale 1048576.

Alguien ha tenido este problema y ha sabido como solventarlo .... me tiene loco porque no entiendo lo que pasa.

Estoy trabajando, en ambos casos con D2006, Win xp SP2 y MS-SQL- Server 2000

Gracias anticipadas a todos por vuestra ayuda.

He colocado el mensaje en este foro de "Varios", porque no tenia claro donde ubicarlo.

QuarkBcn
04-09-2008, 10:05:30
Bueno, al final investigando se resuelven las cosas, por lo menos a veces :)

El problema venia determinado porque cuando la función anterior creaba el fichero éste como máximo se creaba según el tamaño del campo BLOB SIZE, indicado en el BDE, en mi caso 1024. Pero si tenemos el query con la propiedad REQUEST LIVE = TRUE, se graba el fichero correctamente sin tener en cuenta la limitacion del BLOB SIZE indicado en el BDE. Al final, resultó ser que el programa de pruebas tenia activada esta propiedad, y el query del programa final no.

Bueno espero que me hayais entendido.

Y también espero que mi respuesta pueda ser de utilidad a otro usuario si se le presenta este problema.

Saludos y gracias a todos.