Fórum Apagar arquivo em uso #365201

17/10/2008

0

Galera, to com um big problema!!!
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

Tamiriss

Responder

Posts

18/10/2008

Leonardo_age

Bom, então teóricamente esse arquivo somente será substituido quando o Banco Origem der problema, certo?!

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


Responder

Gostei + 0

18/10/2008

Carlosib

Essa propriedade de reconexão existe no IBX? Se não terias exemplos de componentes que tem essa opção de persistência de conexão?


Responder

Gostei + 0

20/10/2008

Tamiriss

Qual componente de conexão que você usa?


Eu uso um TADOConnection


Responder

Gostei + 0

20/10/2008

Tamiriss

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.


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.


Responder

Gostei + 0

20/10/2008

Tamiriss

Pessoal, queria agradecer...
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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar