Fórum Como resolver este erro ? #294150

01/09/2005

0

executo este codigo para criar um novo Banco de dados e se conectar a ele :

       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

Fabiano Góes

Responder

Posts

01/09/2005

Rjun

Em qual comando o erro é disparado?


Responder

Gostei + 0

01/09/2005

Massuda

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.


Responder

Gostei + 0

01/09/2005

Fabiano Góes

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; 




Responder

Gostei + 0

01/09/2005

Rjun

O Massuda deu a dica no Post de cima.


Responder

Gostei + 0

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

Aceitar