Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > FireMonkey
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Abrir PDF almacenado en la base de Datos

Hola amigo gracias a la ayuda del foro logre convertir y guardar un archivo desde fastreport a mi tabla de SQL SERVER en el campo varbinaryMax y hasta allí no tengo ningún problema aunque no logre hacerlo realmente como quería ya que para lograrlo tuve que crear un archivo en el directorio C:\ luego tomar este archivo y guardarlo uno de mis temores es que tenga algún inconveniente si en un futuro compilo para android o Iphone pero en este momento quisiera resolver el tema de abrir esta archivo que esta guardado en el campo varbinaryMax que se supone debe ser un PDF
Código Delphi [-]
 UniQueryFichaDoc.ParamByName('DOC').LoadFromFile(frxPDFExport1.FileName, ftBlob);
Responder Con Cita
  #2  
Antiguo 23-02-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Pon el código de cómo lo has guardado en Base de Datos.
La forma de recuperarlo y abrirlo debería ser análoga a como lo guardas.

Si utilizas el disco para guardar temporalmente el fichero para guardarlo y recuperarlo, asegúrate de:
  • Que utilizas un directorio accesible por permisos para el usuario (directorio temporal)
  • Que lo borras después de utilizarlo
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 23-02-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Pon el código de cómo lo has guardado en Base de Datos.
La forma de recuperarlo y abrirlo debería ser análoga a como lo guardas.

Si utilizas el disco para guardar temporalmente el fichero para guardarlo y recuperarlo, asegúrate de:
  • Que utilizas un directorio accesible por permisos para el usuario (directorio temporal)
  • Que lo borras después de utilizarlo
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
s1:tStream;
filtro :string;
begin
          frxPDFExport1.FileName := 'c:\Test.pdf';
          frxReport1.PrepareReport();
          frxReport1.Export(frxPDFExport1);
          //frxReport1.SaveToStream(s1);
           UniQueryFichaDoc.close;
          UniQueryFichaDoc.SQL.Clear;
          UniQueryFichaDoc.SQL.Add('Insert into fichadoc (REGPAC, TIPODOCUMENTO, DOC, MEDPRES)');
          UniQueryFichaDoc.SQL.Add('VALUES (:REGPAC, :TIPODOCUMENTO, OC, :MEDPRES )');
          UniQueryFichaDoc.ParamByName('REGPAC').AsString := '2';
          UniQueryFichaDoc.ParamByName('TIPODOCUMENTO').AsString := 'RECIPE MEDICO2';
          UniQueryFichaDoc.ParamByName('DOC').LoadFromFile(frxPDFExport1.FileName, ftBlob);
          UniQueryFichaDoc.ParamByName('MEDPRES').AsString := 'MEDICO2';
          UniQueryFichaDoc.ExecSQL;

end;
Responder Con Cita
  #4  
Antiguo 23-02-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Algo así debería valer...

Código Delphi [-]
  // Crear una query para buscar el registro
  qInsert.SQL.Add('select * from ficheros where Nombre=:nombre');
  qInsert.ParamByName('nombre').AsString := FDQuery1.FieldByName('nombre').AsString;
  qInsert.Open;
  // Utiliza un TBlobField para grabarloa disco (a la inversa de como has hecho para gusrdarlo)
  TBlobField(qInsert.FieldByName('fichero')).SaveToFile('c:\temp\fichero_salida.pdf');
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 23-02-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Algo así debería valer...

Código Delphi [-]
  // Crear una query para buscar el registro
  qInsert.SQL.Add('select * from ficheros where Nombre=:nombre');
  qInsert.ParamByName('nombre').AsString := FDQuery1.FieldByName('nombre').AsString;
  qInsert.Open;
  // Utiliza un TBlobField para grabarloa disco (a la inversa de como has hecho para gusrdarlo)
  TBlobField(qInsert.FieldByName('fichero')).SaveToFile('c:\temp\fichero_salida.pdf');
Excelente pero con eso logro guardarlo nuevamente en disco pero como hago para abrirlo? no quisiera que el usuario tenga que seguir la ruta para abrirlo con un dobleclick sobre el archivo. la idea es que se abra automaticamente.
Responder Con Cita
  #6  
Antiguo 23-02-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por giantonti1801 Ver Mensaje
Excelente pero con eso logro guardarlo nuevamente en disco pero como hago para abrirlo? no quisiera que el usuario tenga que seguir la ruta para abrirlo con un dobleclick sobre el archivo. la idea es que se abra automaticamente.
Usa ShellExecute

https://www.clubdelphi.com/foros/sho...69&postcount=1
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Abrir base de datos IB ferminote Firebird e Interbase 3 15-02-2018 08:01:54
Como ejecutar código almacenado en una base de datos r1d2m3 OOP 15 22-10-2010 17:46:27
Procedimiento almacenado que pueda consultar una base de datos diferente. fredycc Firebird e Interbase 3 15-04-2009 21:17:06
Acceder otra base de datos en Procedimiento Almacenado Firebird mario_2000 Conexión con bases de datos 2 05-09-2006 16:35:27
Ejectutar Procedimiento Almacenado en otra Base de Datos AGAG4 Conexión con bases de datos 2 20-09-2004 20:12:44


La franja horaria es GMT +2. Ahora son las 15:41:32.


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
Copyright 1996-2007 Club Delphi