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)
-   -   Cómo almacenar pdf y otros (https://www.clubdelphi.com/foros/showthread.php?t=72566)

GustavoCruz 26-02-2011 14:37:02

Cómo almacenar pdf y otros
 
Hola amigos del foro.

estoy intentando almacener un a archivo pdf en una table en firebird 2.5 y no he podido realizar.... Mejor dicho no sé cómo se hace :p .

estoy utilizando los componentes ZeosLib.

de antemano mil gracias por vuestro tiempo

Gustavo Cruz

Casimiro Notevi 26-02-2011 14:58:04

Es un tema que se ha tratado infinidad de veces, haz una búsqueda y si no encuentras nada entonces avisa y te ayudamos.

GustavoCruz 26-02-2011 15:02:59

Hola amigo Casimiro Notevi, precisamente estuve realizado la búsqueda ayer y antes de ayer. y por ser muchos los registros arrojados por la búsqueda. opté por abrir este hilo.

Gracias por tu tiempo


GustavoCruz

Gallosuarez 26-02-2011 15:13:05

Sugerencia ...
 
Gustavo:

Revisa los ejemplos que vienen con Zeos. En la carperta: ZeosLib\examples\blobs contiene el ejemplo que quieres (ojo lo hacen para cargar una imagen, pero funciona para cualquier tipo de archivo puesto que es un campo Blob con un subtipo binario).

Saludos,

Gerardo Suárez Trejo

PD. No estoy muy seguro pero hay algunas cosas que no funcionan bien con Zeoslib y Firebird 2.5 (al menos es lo que a mi me ha pasado), pero es seguro que funcionen para la versión 2.1 de Firebird. Al parecer aún no salen los componentes de ZeosLib que soporten al 100% la nuevas características de Firebird.

Casimiro Notevi 26-02-2011 15:24:51

Más ejemplos con imágenes:
1, 2, 3

Y otro más, en este caso sirve para guardar cualquier tipo de fichero:

Código Delphi [-]
procedure TFrameDocumentosEscaner.btFicheroClick(Sender: TObject); 
var 
    iOrden:integer; 
    cDescripcion:string; 
begin 
  inherited; 
    if dlgAbrirFichero.Execute then 
    begin 
        {if TamanoFichero(dlgAbrirImagen.FileName) > _TAMANOMAXIMO_ then 
        begin 
            caiMensajeAviso('Tamaño máximo por imagen: '+IntToStr(_TAMANOMAXIMO_ div 1024)+' Kbytes'); 
        end 
        else} 
        begin 
            cDescripcion := InputBox('Descripción','Descripción:',''); 
            // 
            cTablaImagenes := EligeTablaImagenes(iTipodocumento,iTipoOperacion,iFormActivo); 
            // 
            qrImagenes.Append; 
            // 
            if iFormActivo<>6 then begin 
               qrImagenes.FieldByName('CODIGODOCUMENTO').AsInteger := iCod; 
               iOrden := caiVarToint(dmPrincipal.sqlValorConsulta('max(orden)',cTablaImagenes,'CodigoDocumento='+IntToStr(iCo  d))); 
            end 
            else begin 
               qrImagenes.FieldByName('CODIGOARTICULO').AsInteger := iCod; 
               iOrden := caiVarToint(dmPrincipal.sqlValorConsulta('max(orden)',cTablaImagenes,'CodigoArticulo='+IntToStr(iCod  ))); 
            end; 
            inc(iOrden); 
            // 
            qrImagenes.FieldByName('ORDEN').AsInteger := iOrden; 
            qrImagenes.FieldByName('FECHACREACION').AsDateTime := now; 
            qrImagenes.FieldByName('DESCRIPCION').AsString := cDescripcion; 
            qrImagenes.FieldByName('NOMBREFICHERO').AsString := ExtractFileName(dlgAbrirFichero.FileName); 
            TBlobField(qrImagenes.FieldByName('IMAGEN')).LoadFromFile(dlgAbrirFichero.FileName); 
            // 
            qrImagenes.Post; 
            // 
            qrImagenes.Close; 
            qrImagenes.Open; 
            // 
            grImagenes.SetFocus; 
            grImagenes.OnChangeNode(sender,nil,nil); 
            // 
        end; 
    end; 
    // 
end;

En este caso el campo IMAGEN es el blob donde se guardan cualquier tipo de fichero, documento, imagen, etc.

GustavoCruz 28-02-2011 15:27:44

Listo muchísimas gracias casimiro. Ya ingresé un documento pdf en la base de datos. ahora la cuestión de mostrar el documento. Lo quiero hacer en el programa para visualizar pdf por defecto de la máquina, sea cual sea. Cómo se hace.

No tengo componentes para la visualización de los documentos desde mi aplicación.

Mil gracias por vuestro tiempo


GustavoCruz

Casimiro Notevi 28-02-2011 15:41:28

Preguntas nuevas... en temas nuevos. No mezclemos las cosas ;)

GustavoCruz 28-02-2011 16:02:52

Disculpa, tienes razón.


La franja horaria es GMT +2. Ahora son las 08:54:03.

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