mjjj
05-09-2012, 01:29:38
Estimados, estoy con aplicación que abre archivos pdf que estan guardados en una BF Firebird 2.5.
La rutina es esta
begin
i := 0;
while i <> -1 do
begin
inc(i);
filename := 'C:\documento_'+inttostr(i)+'.pdf';
if not FileExists(fileName) then i:=-1;
end;
TBlobField(ibquery2.FieldByName('pdf')).SaveToFile(filename);
ShellExecute(factura_revisarform.Handle,nil,PChar(filename),'','',sw_shownoactivate);
end;
Revisa que no exista el archivo documento_x, y una vez que no lo encuentra lo guarda y en seguida lo abre. Esto funciona sin problema, pero al cabo de un tiempo tengo muchisimos: por ejemplo documento_10000.
El se podría resolver detectando cuando se cierra el pdf y eliminar el archivo.
Se les ocurre alguna otra idea, se podra guardar en memoria y abrir sin tener que guardarlo necesariamente en el disco? esta es la idea que mas me gusta, pero no se como ni si se puede hacer!!
Espero me puedan ayudar.
La rutina es esta
begin
i := 0;
while i <> -1 do
begin
inc(i);
filename := 'C:\documento_'+inttostr(i)+'.pdf';
if not FileExists(fileName) then i:=-1;
end;
TBlobField(ibquery2.FieldByName('pdf')).SaveToFile(filename);
ShellExecute(factura_revisarform.Handle,nil,PChar(filename),'','',sw_shownoactivate);
end;
Revisa que no exista el archivo documento_x, y una vez que no lo encuentra lo guarda y en seguida lo abre. Esto funciona sin problema, pero al cabo de un tiempo tengo muchisimos: por ejemplo documento_10000.
El se podría resolver detectando cuando se cierra el pdf y eliminar el archivo.
Se les ocurre alguna otra idea, se podra guardar en memoria y abrir sin tener que guardarlo necesariamente en el disco? esta es la idea que mas me gusta, pero no se como ni si se puede hacer!!
Espero me puedan ayudar.