O arquivo já está sendo usado por outro processo.

Delphi

13/02/2019

Bom dia,

AS VEZES quando vou entrar no programa da a seguinte mensagem, quando o programa já esta aberto:

Classe de erro: EIBNativeException
Mensagem de erro: [FireDAC][Phys][FB]I/O error during "CreateFile (open)" operation for file "D:\\SIFAC\\DADOS_DB.FDB"
Error while trying to open file
O arquivo já está sendo usado por outro processo.

Configuração:
FDPhysFBDriverLink1.VendorLib := LocalDLL;
DB.Params.Values['Database'] := SCaminho;
DB.Params.Values['User_Name'] := tUser;
DB.Params.Values['Password'] := tSenha;
DB.Params.Values['ServerCharSet'] := tCharSet;
DB.Params.Values['SqlDialect'] := tDialeto;
DB.Params.Values['Server'] := Tservidor;
DB.Params.Values['Protocol'] := NetBEUI;
DB.DriverName := 'FB';
Dirceu Morais

Dirceu Morais

Curtidas 0

Melhor post

Hélio Devmedia

Hélio Devmedia

22/02/2019

Olá Dirceu, tudo bem?


O erro indica que sua base está em um modo shutdown (talvez por causa de um backup/restore) e só permite uma conexão de cada vez, ou pelo dataset do delphi em tempo de projeto ou, exclusivamente, pela aplicação em execução.

Para resolver isto basta usar o IBExpert e ir em Services -> Database Online -> e escolher a opção normal

ou

acessar a pasta do aplicativo do gfix do firebird pelo DOS e inserir

gfix -online caminho_da_base

GOSTEI 1

Mais Respostas

Dirceu Morais

Dirceu Morais

13/02/2019

Olá Dirceu, tudo bem?


O erro indica que sua base está em um modo shutdown (talvez por causa de um backup/restore) e só permite uma conexão de cada vez, ou pelo dataset do delphi em tempo de projeto ou, exclusivamente, pela aplicação em execução.

Para resolver isto basta usar o IBExpert e ir em Services -> Database Online -> e escolher a opção normal

ou

acessar a pasta do aplicativo do gfix do firebird pelo DOS e inserir

gfix -online caminho_da_base



Olá Hélio, obrigado pelo retorno..

Estou bem graças a Deus.
Vou tentar fazer conforme vc me instruiu.
Engraçado é que quando isto acontece, o usuário fecha o programa e abre novamente sem problemas.
Mas vou tentar aplicar a solução pra ver se resolve.


Brigadú
GOSTEI 0
Gilberto Moura

Gilberto Moura

13/02/2019

Boa tarde Senhores,

Estou com o erro abaixo
----------------------------------------------
[Content]
ATENÇÃO - Rotina "Connection Error" AVISA :
Encontrei o Erro abaixo :
[FireDAC][Phys][FB]I/O error during "CreateFile (open)" operation for file "D:\\GIL\\DADOS\\CIAMINEIRA_GB.FDB"
Error while trying to open file
Acesso negado.
-----------------------------------------------
Aqui mesmo no fórum já foi dito a respeito da seguinte solução :::
Para resolver isto basta usar o IBExpert e ir em Services -> Database Online -> e escolher a opção normal
ou
acessar a pasta do aplicativo do gfix do firebird pelo DOS e inserir
Porém sem sucesso, isso ocorre em todos os bancos de dados FDB ou GDB.
Já reinstalei o Fb 32 e 64 no w10, erro persiste.
GOSTEI 0
Schustter Haus

Schustter Haus

13/02/2019

Bom dia turma, tudo em ordem?
Sou novo aqui, e caso esteja infringindo algumas regras de antemão peço desculpas.
Estou com o seguinte problema em um banco.
Ao rodar o GBAK apresenta o seguinte erro.

gbak: ERROR:internal Firebird consistency check (decompression overran buffer (179), file: sqz.cpp line: 228)
gbak: ERROR:gds_$receive failed
gbak:Exiting before completion due to errors
gbak: ERROR:internal Firebird consistency check (can't continue after bugcheck)

Alguém saberia me dizer como proceder?

Desde já agradeço!!
GOSTEI 0
Dirceu Morais

Dirceu Morais

13/02/2019

Bom dia turma, tudo em ordem?
Sou novo aqui, e caso esteja infringindo algumas regras de antemão peço desculpas.
Estou com o seguinte problema em um banco.
Ao rodar o GBAK apresenta o seguinte erro.

gbak: ERROR:internal Firebird consistency check (decompression overran buffer (179), file: sqz.cpp line: 228)
gbak: ERROR:gds_$receive failed
gbak:Exiting before completion due to errors
gbak: ERROR:internal Firebird consistency check (can''t continue after bugcheck)

Alguém saberia me dizer como proceder?

Desde já agradeço!!


Você deverá o GFix juntamente com o GBAK

LEMBRE-SE DE TER UMA CÓPIA DO BANCO DE DADOS ANTES DE INICIAR!

Todo o procedimento que vou te passar é realizado através do prompt de comando de preferência aberto como administrador.
1) Localize o caminho da pasta “bin” do Firebird, geralmente fica em: C:\\\\Program Files (x86)\\\\Firebird\\\\Firebird_2_5\\\\bin
2) Para verificar se o banco de dados realmente retorna alguma mensagem de erro vc vai utilizar o GFIX:
gfix -v -full caminho_da_base -user nome_usuario -pass senha_usuário
(Exemplo: gfix -v -full C:\\\\Sistema\\\\banco.fdb -user SYSDBA -pass masterkey)

3) Se apareceu algum erro, você pode tentar reparar usando o comando:
gfix -m -i caminho_da_base -user nome_usuario -pass senha_usuário
(Exemplo: gfix -mend -full -ignore C:\\\\Sistema\\\\banco.fdb -user SYSDBA -pass masterkey)

4) Teste o banco de dados novamente usando o comando do passo 2

5) Se ainda tiver mensagem de erro, você deve fazer um backup completo e restaurá-lo:
gbak -backup -v -ignore database.fdb database.gbk
(Exemplo: gbak -backup -v -ignore C:\\\\Sistema\\\\banco.fdb C:\\\\Sistema\\\\novo_banco.gbk -user SYSDBA -pass masterkey)

6) Crie um novo banco de dados através do backup que você criou:
gbak -create -v database.gbk database.fdb
(Exemplo: gbak -create -v C:\\\\Sistema\\\\novo_banco.gbk C:\\\\Sistema\\\\novo_banco.fdb -user SYSDBA -pass masterkey)

Espero ter ajudado.
GOSTEI 0
Dirceu Morais

Dirceu Morais

13/02/2019

Bom dia,

AS VEZES quando vou entrar no programa da a seguinte mensagem, quando o programa já esta aberto:

Classe de erro: EIBNativeException
Mensagem de erro: [FireDAC][Phys][FB]I/O error during "CreateFile (open)" operation for file "D:\\\\SIFAC\\\\DADOS_DB.FDB"
Error while trying to open file
O arquivo já está sendo usado por outro processo.

Configuração:
FDPhysFBDriverLink1.VendorLib := LocalDLL;
DB.Params.Values['Database'] := SCaminho;
DB.Params.Values['User_Name'] := tUser;
DB.Params.Values['Password'] := tSenha;
DB.Params.Values['ServerCharSet'] := tCharSet;
DB.Params.Values['SqlDialect'] := tDialeto;
DB.Params.Values['Server'] := Tservidor;
DB.Params.Values['Protocol'] := NetBEUI;
DB.DriverName := 'FB';



No meu caso, depois de tanto tempo, acho que o problema, no meu caso, é que no computador onde esta sendo executado o programa existe duas versões do Firebird. E as vezes ao abrir o programa, não o porquê, ele pega a versão errada do Firebird ocasionando a mensagem de erro, mas fechando e abrindo novamente, dá certo.
GOSTEI 0
Schustter Haus

Schustter Haus

13/02/2019

Bom dia turma, tudo em ordem?
Sou novo aqui, e caso esteja infringindo algumas regras de antemão peço desculpas.
Estou com o seguinte problema em um banco.
Ao rodar o GBAK apresenta o seguinte erro.

gbak: ERROR:internal Firebird consistency check (decompression overran buffer (179), file: sqz.cpp line: 228)
gbak: ERROR:gds_$receive failed
gbak:Exiting before completion due to errors
gbak: ERROR:internal Firebird consistency check (can''t continue after bugcheck)

Alguém saberia me dizer como proceder?

Desde já agradeço!!


Você deverá o GFix juntamente com o GBAK

LEMBRE-SE DE TER UMA CÓPIA DO BANCO DE DADOS ANTES DE INICIAR!

Todo o procedimento que vou te passar é realizado através do prompt de comando de preferência aberto como administrador.
1) Localize o caminho da pasta “bin” do Firebird, geralmente fica em: C:\\\\\\\\Program Files (x86)\\\\\\\\Firebird\\\\\\\\Firebird_2_5\\\\\\\\bin
2) Para verificar se o banco de dados realmente retorna alguma mensagem de erro vc vai utilizar o GFIX:
gfix -v -full caminho_da_base -user nome_usuario -pass senha_usuário
(Exemplo: gfix -v -full C:\\\\\\\\Sistema\\\\\\\\banco.fdb -user SYSDBA -pass masterkey)

3) Se apareceu algum erro, você pode tentar reparar usando o comando:
gfix -m -i caminho_da_base -user nome_usuario -pass senha_usuário
(Exemplo: gfix -mend -full -ignore C:\\\\\\\\Sistema\\\\\\\\banco.fdb -user SYSDBA -pass masterkey)

4) Teste o banco de dados novamente usando o comando do passo 2

5) Se ainda tiver mensagem de erro, você deve fazer um backup completo e restaurá-lo:
gbak -backup -v -ignore database.fdb database.gbk
(Exemplo: gbak -backup -v -ignore C:\\\\\\\\Sistema\\\\\\\\banco.fdb C:\\\\\\\\Sistema\\\\\\\\novo_banco.gbk -user SYSDBA -pass masterkey)

6) Crie um novo banco de dados através do backup que você criou:
gbak -create -v database.gbk database.fdb
(Exemplo: gbak -create -v C:\\\\\\\\Sistema\\\\\\\\novo_banco.gbk C:\\\\\\\\Sistema\\\\\\\\novo_banco.fdb -user SYSDBA -pass masterkey)

Espero ter ajudado.


Boa tarde Dirceu.
Agradeço o retorno.

Realizei os procedimentos supracitado, mas mesmo assim continua apresentando o erro.

gbak: ERROR:internal Firebird consistency check (decompression overran buffer (179), file: sqz.cpp line: 228)
gbak: ERROR:gds_$receive failed
gbak:Exiting before completion due to errors
gbak: ERROR:internal Firebird consistency check (can't continue after bugcheck)
GOSTEI 0
POSTAR