PDA

Ver la Versión Completa : ¿Como elimino las tablas temporales que me genera mi Exe?


IcebergDelphi
01-06-2003, 02:44:43
Hola amigos, hace dias termine un pequeño modulo en Delphi que crea reportes con FastReport, las tablas que uso y a las que me conecto via BDE , son de VFox Pro, en mi Form utilizo Tquerys para filtrar los reportes por fechas, al ejecutar mi exe ya compilado siempre , me arroja unas tablas temporales de Tipo VFox, y ahi se quedan , imaginense cada que ejecuto mi exe se generan esas dichosas tablas, ya mi carpeta es un basurero, ahora imaginense como va a quedar en la maquina de mi cliente, ¿ alguien sabe como evitar que aparescan esas tablas temporales y porque salen?

Las tablas que aparecen dicen mas o menos asi:
_QSQLxxx.DBF

es decir:
_QSQL244.DBF

Muchisimas gracias.

marcoszorrilla
01-06-2003, 11:34:55
Yo crearía una función que al cerrar la aplicación borrara todos los archivos de ese tipo.

Te pongo un ejemplo, tendrías que darlo unos retoques mínimos para construirte una Procedure o Funcion lo que más te convenga.


procedure TForm1.Button1Click(Sender: TObject);
var
MiDir:String;//Donde están los ficheros
MisFicheros:String;//Cadena que contiene el nombre con comodines
Rbusqueda:TSearchRec;//Está definida en la unidad SysUtils

begin
MiDir:='d:\Pruebas\';
MisFicheros:='_*.Dbf';

if FindFirst(MiDir+MisFicheros,faanyfile, Rbusqueda)= 0 then
begin
DeleteFile(Pchar(MiDir+Rbusqueda.Name)); //Borro el primero si Existe

//Busco todos los del mismo patrón y los borro
While FindNext(Rbusqueda) = 0 do
begin
DeleteFile(Pchar(MiDir+Rbusqueda.Name));
end;

//Ambas funciones devuelven 0 si la búsqueda tiene éxito.
end;




Un Saludo.

andres1569
02-06-2003, 15:36:32
Hola:

Te aconsejo que asignes un directorio adrede para esos archivos temporales, esto lo haces mediante la propiedad PrivateDir del Session (si no quieres colocar un componente TSession a propósito para esto, lo puedes asignar a la veriable global Session en el OnCreate del Datamodule principal). De esta forma el borrado de archivos basura te será más fácil y no te arriesgarás a borrar algo sagrado.

Como dice Marcos Zorrilla, lo ideal es que sea tu programa quien se encargue de esa labor (aunque a veces se quedan ahí precisamente porque el programa se ha colgado o cualquier imprevisto).

Aún recuerdo cuando estos archivos se me quedaban en el mismo directorio que el ejecutable y por teléfono le decía al cliente cómo borrarlos (me recorría un sudor frío por el cuerpo).

Un saludo