PDA

Ver la Versión Completa : pdf + MYSQL+ DELPHI+ GUARDAR EN db Y VISUALIZAR


vroa74
18-05-2017, 20:55:41
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, 21:41:54
Haz una búsqueda por campos BLOB

bitbow
19-05-2017, 02: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, 13:23:51
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, 15:16:30
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, 15:26:16
¿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, 16:03:53
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, 17: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.

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 : http://i.imgur.com/smN5CcF.png

Casimiro Notevi
24-05-2017, 19:12:32
Mira el punto 12 de la guía de estilo ;)
Que no eres un novato :rolleyes: