Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-01-2009
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Problemas al borrar un archivo desde Delphi

Hola amigos!
tengo una aplicacion que baja de un server ftp una base de datos y la asocia a un AdoConection para usarla para hacer una actualizacion.
El problema es que , una ves que termino de usarla, primero dejo el adoConection vacio (osea, sin referencia a esa base) y luego elimino el archivo mdb.
Donde esta el problema? bueno, cuando termino de usar la base y le quito las referencias al .mdb (base access) algun proceso queda ligado a la base y cuando hago el delete no lo borra, entonces cuando corro de nuevo la actualizacion (sin cerrar la aplicacion) me dice que no puede reemplazar la base por que hay un proceso usandolo, me fijo con el unlocker que proceso es, y obviamente es mi aplicacion.
les muestro el codigo con que lo hago:
asi saco las referencias a la base:
Código Delphi [-]
BaseTemp.Connected:=false;
    BaseTemp.ConnectionString :='';
    BaseTemp.LoginPrompt:=false;
    BaseTemp.Free;

y despues la borro asi :
Código Delphi [-]
if FileExists(carpeta_instalacion+'DATOS\TEMP\temp.MDB') then
        deletefile(carpeta_instalacion+'DATOS\TEMP\temp.MDB');

la cosa es que no lo borra el archivo .mdb, y cuando me voy a fijar si esta, aparece el archivo mdb y al lado el otro que tiene el dibujo del candadito que indica que hay un proceso usandolo.
Alguien sabe a que se debe esto y como puedo arreglarlo? Muchas gracias!!!
Responder Con Cita
  #2  
Antiguo 06-01-2009
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Como bien dices, está en uso. Alguna aplicacion (puede ser tu proyecto) aun lo tiene abierto. Si es un proyecto tuyo, debes cerrar la conexion y quizas liberar el objeto que lo carga para que despues lo puedas borrar.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 06-01-2009
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
claro, es lo que imaginaba, pero , si el adoConection que usa la base yo la libero ( conected en false, conection String = ' ', etc) que es lo que sigue atado al archivo?, hay alguna forma de forzar el borrado del archivo sin importar que tenga un proceso activo?
Responder Con Cita
  #4  
Antiguo 06-01-2009
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
En vez de esto:

Código Delphi [-]
    BaseTemp.Connected:=false;
    BaseTemp.ConnectionString :='';
    BaseTemp.LoginPrompt:=false;
    BaseTemp.Free;

¿ Has intentado esto?:

Código Delphi [-]
     BaseTemp.Close;
    BaseTemp.ConnectionString :='';
    BaseTemp.LoginPrompt:=false;
    BaseTemp.Free;
__________________
Herr Heins Faust
Responder Con Cita
  #5  
Antiguo 06-01-2009
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Ahora que me acuerdo...

Ha habido ocasiones en que trabajo en un proyecto con Delphi y Access, abro la base de datos en tiempo de diseño, luego la cierro y finalmente cierro mi proyecto, pero no puedo eliminar el archivo *.mdb sin antes cerrar Delphi, aunque ya no este cargado mi proyecto en el IDE de Delphi...

No sé porque continue siendo usado el archivo por Delphi aún cuando mi proyecto ya no esté cargado, me parece algo curioso...

Si alguien nos lo purdiera explicar...
__________________
Herr Heins Faust
Responder Con Cita
  #6  
Antiguo 07-01-2009
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
probe cambiar el conected= false por el close pero sigue saliendo el mismo error.... la verdad que no se que proceso es lo que sigue ligando el programa a la base si la cierro y le quito las referencias al AdoConnection en tiempo de ejecucion...
Ojala le encuentre arreglo.
Saludos y gracias por responder!
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
Funciones de un archivo dll desde delphi 7 madmai Varios 5 02-01-2009 12:16:49
Grabar y Borrar CDS con IMAPI desde delphi yordan API de Windows 0 18-02-2008 17:11:01
como ejecutar archivo *.bat desde delphi 7 kurono Varios 6 27-08-2007 04:42:48
Borrar archivo desde IntraWeb geovany Internet 1 09-03-2005 01:35:32
Como copiar un archivo desde Delphi Odnanref Varios 1 10-03-2004 02:53:58


La franja horaria es GMT +2. Ahora son las 03:18:16.


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