Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   pdf + MYSQL+ DELPHI+ GUARDAR EN db Y VISUALIZAR (https://www.clubdelphi.com/foros/showthread.php?t=91853)

vroa74 18-05-2017 21:55:41

pdf + MYSQL+ DELPHI+ GUARDAR EN db Y VISUALIZAR
 
BUEN DIA.
tengo la nececidad de tomar un archivo pdf y guardarlo en la base de datos así como después voy a necesitar poder verlo y la verdad no se como poder hacer eso
para ver un pdf estoy usando el componente de acrobat insertado en el activex de delphi.
espero poder obtener su ayuda.

Casimiro Notevi 18-05-2017 22:41:54

Haz una búsqueda por campos BLOB

bitbow 19-05-2017 03:26:08

Como te comentan realiza una busqueda, aqui la el segundo resultado.

http://www.scalabium.com/faq/dct0141.htm

Neftali [Germán.Estévez] 19-05-2017 14:23:51

Cita:

Empezado por vroa74 (Mensaje 516836)
BUEN DIA.
tengo la nececidad de tomar un archivo pdf y guardarlo en la base de datos así como después voy a necesitar poder verlo y la verdad no se como poder hacer eso
para ver un pdf estoy usando el componente de acrobat insertado en el activex de delphi.
espero poder obtener su ayuda.

Lo primero que se me ocurre es que lo pases a Base64 (algoritmo estandard) para evitar problemas con caracteres raros y luego lo almacenes en un TEXT o NTEXT (habrá un campo equivalente en MySQL).
La segunda opción es guardarlo en formato binario (y te saltas el paso de de codifgicación/decodificación) dependiendo de los tipos campos que tenga MySQL.

Creo que en Delphi a partir de la versión 2009/2010 ya hay una unit EncdDecd.pas
Para versiones anteriores puedes usar alguna de las librería externas que existen.

roman 19-05-2017 16:16:30

Cita:

Empezado por Neftali (Mensaje 516865)
Lo primero que se me ocurre es que lo pases a Base64 (algoritmo estandard) para evitar problemas con caracteres raros y luego lo almacenes en un TEXT o NTEXT (habrá un campo equivalente en MySQL).

¿Y esto? Me llama la atención que prefieras un proceso de codificación/decodificación a guardar directamente en un campo BLOB.

LineComment Saludos

Neftali [Germán.Estévez] 19-05-2017 16:26:16

Cita:

Empezado por roman (Mensaje 516867)
¿Y esto? Me llama la atención que prefieras un proceso de codificación/decodificación a guardar directamente en un campo BLOB.

Viene por mi desconocimiento de los campos en MySQL.
Me he encontrado en más de una caso, que guardar Ficheros y Streams en Base de Datos (no en MySQL) daba problemas a la hora de recuperar los valores.

Según qué caracteres, con según qué versiones del SGBD, con según que codificación de la Base de Datos (o del campo),... ==> Daba problemas.
Otro caso que se me ha dado es que la carga de valores iniciales (Esto eran Layouts de pantalla) en Scripts no se podía hacer con estos valores.

La solución pasa por codificar a Base64 y se acaban todos los problemas.

Eso si, si guardar en binario funciona sin problemas, adelante, evitamos paso de codificar/decodificar y seguramente ocupará menos espacio.

roman 19-05-2017 17:03:53

Cita:

Empezado por Neftali (Mensaje 516868)
Viene por mi desconocimiento de los campos en MySQL.

¡Ah! Ok. No, en MySQL no hay problema, existe el campo BLOB y funciona como se espera.

LineComment Saludos

vroa74 24-05-2017 18:54:36

BUEN DIA.
tengo la nececidad de tomar un archivo pdf y guardarlo en la base de datos así como después voy a necesitar poder verlo y la verdad no se como poder hacer eso
para ver un pdf estoy usando el componente de acrobat insertado en el activex de delphi.
espero poder obtener su ayuda.
Código Delphi [-]
      Mytable1.Insert;
          Mytable1.FieldByName('id_report').AsString:= id;
          TBlobField(Mytable1.FieldByName('pdf')).LoadFromFile(dir+'\'+nom+ext);
          Mytable1.FieldByName(nom).AsString;
          Mytable1.FieldByName(ext);
       Mytable1.Post;


y marca este error :

Casimiro Notevi 24-05-2017 20:12:32

Mira el punto 12 de la guía de estilo ;)
Que no eres un novato :rolleyes:


La franja horaria es GMT +2. Ahora son las 02:20:27.

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