Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Recuperación de campo long raw (https://www.clubdelphi.com/foros/showthread.php?t=34781)

daviniagh 21-08-2006 22:17:09

Recuperación de campo long raw
 
Hola, mi problema es el siguiente: en la bd oracle tengo un campo long raw que contiene ficheros doc, pdf.... necesito poder rescatar esos ficheros desde delphi guardándolos en el disco duro y además abriéndolos con la aplicación correspondiente (word, adobe...). Hasta ahora he conseguido que me cree el archivo donde quiero y con el nombre y extensión con el que se guardó originalmente en la bd, pero no se almacena correctamente, el fichero creado siempre tiene 2kb de tamaño y no se visualiza.

El código que tengo es algo así:


blob: TBlobStream;
fich:TFileStream;
nombre_fichero, nombre, extension: string;
fichero :TMemoryStream;

begin
SPFichero.Close;
SPFichero.ParamByName('V_ID').AsInteger:=p_id;
SPFichero.Open;
nombre:= SPFicheroNOMBRE_FICHERO.AsString;
extension:= SPFicheroEXTENSION_FICHERO.AsString;
nombre_fichero:= 'C:/'+ nombre + '.'+ extension;

blob := TBlobStream.Create(SPFichero.FieldByName('FICHERO') as TBlobField,bmRead);

try
blob.Seek(0, soFromBeginning);

with TFileStream.Create (nombre_fichero, fmCreate) do
try
CopyFrom(blob, blob.Size)
finally
Free
end;
finally
blob.Free
end;



Si alguien detecta que me falta o falla algo... gracias de antemano... :)


La franja horaria es GMT +2. Ahora son las 14:06:41.

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