PDA

Ver la Versión Completa : Sacar un pdf de una bbdd y mostrarlo en pantalla


mierda
12-02-2007, 10:37:24
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

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 ... al final he optado por lo que me has dicho ... ya que no encuentro una forma mas elegante de hacerlo

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.