Fórum Apagar arquivo em uso #365201
17/10/2008
0
Tenho um sistema que utiliza Banco de Dados e todos os dias o sistema faz um backup desse banco para que o usuario possa usar o ultimo banco caso tenha problemas.
Eu preciso criar um form que restaure o banco automaticamente, sem que o cliente tenha que renomear os arquivos na mão.
O problema é que esse banco é utilizado pelo sistema e quando tento apagar ele nao apaga pq o arquivo está sendo utilizado.
Achei que desativando a conecção adiantaria, mas o erro persistiu....
Estou usando o seguinte código:
var Arquivo: string; begin Arquivo := LsbArquivo.Items.Strings[LsbArquivo.ItemIndex]; FormPrincipal.Conexao.Connected := false; DeleteFile(´C:\arquivo.mdb´); if RenameFile(unidade + arquivo, ´C:\arquivo.mdb´) then if unidade <> ´C:\´ then CopyFileTo(Pchar(´Unidade´ + arquivo), PChar(´C:\novoCminho\arquivo.mdb´)); FormPrincipal.Conexao.Connected := TRUE; close;
Fazendo assim nada funciona, o arquivo não é deletado nem renomeado e também não consigo colar nenhum arquivo com o nome necessário.
Se alguém puder me ajudar
Tamiriss
Curtir tópico
+ 0Posts
18/10/2008
Leonardo_age
Você já verificou se existe alguma table, clientedataSet ou componente do genero aberto ou ativado? Em alguns casos os componentes ´prendem´ a conexão não permitindo que ela se desfaça.
Outro ponto, existe em alguns componentes de conexão uma propriedade que torna a conexão persistente, ou seja, mesmo que ela caia ele refaz a conexão automaticamente.
Qual componente de conexão que você usa?
Abraços
Gostei + 0
18/10/2008
Carlosib
Gostei + 0
20/10/2008
Tamiriss
Eu uso um TADOConnection
Gostei + 0
20/10/2008
Tamiriss
Tem alguma possibilidade disso não influenciar?
Pq, o sistema é enooooorme, tem mais de 70 telas e a maioria delas utiliza um DataSet que usa essa conexão.
Gostei + 0
20/10/2008
Tamiriss
Percebi aqui o seguinte...
No Delphi a conexão já estava como connected true, então na minha máquina dava o erro pq o Delphi ainda estava utilizando o arquivo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)