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