Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Sacar un pdf de una bbdd y mostrarlo en pantalla (https://www.clubdelphi.com/foros/showthread.php?t=40269)

mierda 12-02-2007 10:37:24

Sacar un pdf de una bbdd y mostrarlo en pantalla
 
Sacar un pdf de una bbdd y mostrarlo en pantalla ...

Hola tios, tengo un pdf en una bbdd de sql server 2000, que he introducido con este codigo

Código Delphi [-]
try
ADOConnection1.Open;
ADOTable1.Open;
ADOTable1.insert;
ADOTable1.FieldByName('nombre').AsString := edit1.Text;
TBlobField(ADOTable1.fieldbyname('fichero')).LoadFromFile(OpenDialog1.FileName);
ADOTable1.Post;
ADOTable1.Close;
ADOConnection1.Close;
showmessage ('Fichero guardado con exito');
except
  ShowMessage('ERROR: No se ha guardado el fichero');
  end;
end;

Ahora lo que necesito es poder sacar el pdf diciendo el nombre que le he puesto y que lo ejecute y se vea en pantalla.

Darme alguna pista de como continuar ... un saludo

Neftali [Germán.Estévez] 12-02-2007 11:43:03

¿Has probado con el método SaveToFile para extraerlo a disco?
Por ejemplo en un directorio temporal.
A partir de ahí puedes utilizar un ShellExecute (busca en los foros, hay muchos ejemplos) para abrirlo y luego borrarlo

mierda 12-02-2007 13:12:20

Vale ...
 
Vale ... al final he optado por lo que me has dicho ... ya que no encuentro una forma mas elegante de hacerlo

Código Delphi [-]
if fileexists (ExtractFileDir(paramstr(0)) + '\temp.pdf') then
  begin
    if DeleteFile(ExtractFileDir(paramstr(0)) + '\temp.pdf') then
      begin
        TBlobField(ADOTable1.fieldbyname('fichero')).SaveToFile(ExtractFileDir(paramstr(0)) + '\temp.pdf');
        shellexecute(Handle,'open', pchar(ExtractFileDir(paramstr(0)) + '\temp.pdf'), nil, nil, SW_SHOWMAXIMIZED);
      end;
  end
else
      begin
        TBlobField(ADOTable1.fieldbyname('fichero')).SaveToFile(ExtractFileDir(paramstr(0)) + '\temp.pdf');
        shellexecute(Handle,'open', pchar(ExtractFileDir(paramstr(0)) + '\temp.pdf'), nil, nil, SW_SHOWMAXIMIZED);
      end;

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 12:49:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi