Como resolver este erro ?
executo este codigo para criar um novo Banco de dados e se conectar a ele :
________________________________________________________
fonciona, porem se eu executar e sem reiniciar o meu aplicativo executar novamente me retorna o seguinte erro:
Project SQL_Via_Delphi.exe raised exception class EIBInterBaseError with message ´I/O error for file ´c:\_db\BASE.gdb´ database or files exists´.
Como Soluciono isso ?
preciso executar esse codigo varias vezes sem que reinicie o sistema.
if con.Connected then con.Connected := False; IBDatabase1.Close; if FileExists(´c:\_db\BASE.gdb´) then DeleteFile(´c:\_db\BASE.gdb´); with IBDatabase1 do begin DatabaseName := ´c:\_db\BASE.gdb´; SQLDialect := 3; Params.Clear; Params.Add(´USER ´´SYSDBA´´´); Params.Add(´PASSWORD ´´masterkey´´´); Params.Add(´PAGE_SIZE 4096´); Params.Add(´DEFAULT CHARACTER SET ISO8859_1´); CreateDatabase; end; con.Connected := True;
________________________________________________________
fonciona, porem se eu executar e sem reiniciar o meu aplicativo executar novamente me retorna o seguinte erro:
Project SQL_Via_Delphi.exe raised exception class EIBInterBaseError with message ´I/O error for file ´c:\_db\BASE.gdb´ database or files exists´.
Como Soluciono isso ?
preciso executar esse codigo varias vezes sem que reinicie o sistema.
Fabiano Góes
Curtidas 0
Respostas
Rjun
01/09/2005
Em qual comando o erro é disparado?
GOSTEI 0
Massuda
01/09/2005
Eu acho que o erro está ocorrendo porque o arquivo está em uso pelo servidor do IB quando você tenta excluí-lo.
Eu não entendo muito de BD, mas deve ter no IB um comando ´DROP DATABASE´ (ou similar) para eliminar o banco de dados ao invés de você apagar o arquivo GDB.
Eu não entendo muito de BD, mas deve ter no IB um comando ´DROP DATABASE´ (ou similar) para eliminar o banco de dados ao invés de você apagar o arquivo GDB.
GOSTEI 0
Fabiano Góes
01/09/2005
Rjun, o comando é disparado quando o sistema tenta criar o Banco novamente, parece que ele esta em uso ainda, apesar de começar o codigo fechando todas as conecções:
if con.Connected then con.Connected := False; IBDatabase1.Close;
GOSTEI 0
Rjun
01/09/2005
O Massuda deu a dica no Post de cima.
GOSTEI 0