Erro ao conectar SQLConnection: Connection Rejected by Remote Interface
Olá;
Pessoal, estou passando por um baita perrengue para migrar os dados de um sistema legado que usa o Firebird 1.5 para a versão estável mais nova atualmente, a 3.0.3 usando o Delphi Berlim:
No caso, eu estou abrindo duas conexões para trabalhar com a migração dos dados: Uma para o FB 1.5 e outra para o FB 3.0. Ao abrir a conexão do FB 1.5, tudo corre sem problemas, mas ao fazer o mesmo na conexão do FB 3.0, o erro citado no título da pergunta ocorre;
O mais estranho, para mim, é que ao colocar 2 SQLConnections no formulário, configurá-los e então realizar a conexão em tempo de projeto, ambos funcionam perfeitamente. Mas, ao tentar conectá-los em tempo de execução, o componente designado para a versão mais nova dispara a exceção. O mesmo erro ocorre na minha classe, ao tentar me conectar com o FB 3.0.3;
Pensei que fosse um arquivo interno corrompido da IDE, mas mesmo depois de reinstalar todo o ambiente, o erro persiste;
Ambas as versões do Firebird estão rodando como aplicação;
Uso o Windows 10;
Pessoal, estou passando por um baita perrengue para migrar os dados de um sistema legado que usa o Firebird 1.5 para a versão estável mais nova atualmente, a 3.0.3 usando o Delphi Berlim:
No caso, eu estou abrindo duas conexões para trabalhar com a migração dos dados: Uma para o FB 1.5 e outra para o FB 3.0. Ao abrir a conexão do FB 1.5, tudo corre sem problemas, mas ao fazer o mesmo na conexão do FB 3.0, o erro citado no título da pergunta ocorre;
O mais estranho, para mim, é que ao colocar 2 SQLConnections no formulário, configurá-los e então realizar a conexão em tempo de projeto, ambos funcionam perfeitamente. Mas, ao tentar conectá-los em tempo de execução, o componente designado para a versão mais nova dispara a exceção. O mesmo erro ocorre na minha classe, ao tentar me conectar com o FB 3.0.3;
Pensei que fosse um arquivo interno corrompido da IDE, mas mesmo depois de reinstalar todo o ambiente, o erro persiste;
Ambas as versões do Firebird estão rodando como aplicação;
Uso o Windows 10;
Rodrigo Gama
Curtidas 0
Melhor post
Rodrigo Gama
28/08/2018
Olá;
Pessoal, consegui resolver o problema, e resolvi postar aqui para o caso de mais alguém cometer o mesmo vacilo que eu;
O problema estava no fato de que eu usava o DBExpress tanto para a conexão do banco legado quanto para o novo banco. Isso causava algum tipo de conflito interno em tempo de execução;
A solução encontrada foi passar a usar os componentes do FireDAC para a conexão do banco de dados Firebird 3.0. Lembrando que você precisará dos componentes fdConnection que, a grosso modo, é o SQLConnection do FireDAC, e o fdPhysFBDriverLink, que cria a comunicação do FireDAC com o Firebird. Nesse último componente foi necessário preencher a propriedade VendorLIb com o caminho da DLL correta. Você ainda pode precisar do componente fdTransaction;
Pessoal, consegui resolver o problema, e resolvi postar aqui para o caso de mais alguém cometer o mesmo vacilo que eu;
O problema estava no fato de que eu usava o DBExpress tanto para a conexão do banco legado quanto para o novo banco. Isso causava algum tipo de conflito interno em tempo de execução;
A solução encontrada foi passar a usar os componentes do FireDAC para a conexão do banco de dados Firebird 3.0. Lembrando que você precisará dos componentes fdConnection que, a grosso modo, é o SQLConnection do FireDAC, e o fdPhysFBDriverLink, que cria a comunicação do FireDAC com o Firebird. Nesse último componente foi necessário preencher a propriedade VendorLIb com o caminho da DLL correta. Você ainda pode precisar do componente fdTransaction;
GOSTEI 1
Mais Respostas
Rodrigo Gama
27/08/2018
Como eu não encontrei nenhuma funcionalidade para editar meu post, vou passar mais alguns detalhes por aqui mesmo:
- O Firebird 1.5 está rodando na porta 3050 e o 3.0, na porta 3053;
- Ao passar o dado do caminho do banco para dentro do componente, eu sempre passo o caminho completo de rede, no caso:
- 127.0.0.1/3050:C:\\Pasta\\Banco\\Banco.FDB e 127.0.0.1/3053:C:\\Pasta\\Banco\\Banco_30.FDB;
- Estou passando o caminho da DLL que está na pasta do Firebird de sua versão;
- O Firebird 1.5 está rodando na porta 3050 e o 3.0, na porta 3053;
- Ao passar o dado do caminho do banco para dentro do componente, eu sempre passo o caminho completo de rede, no caso:
- 127.0.0.1/3050:C:\\Pasta\\Banco\\Banco.FDB e 127.0.0.1/3053:C:\\Pasta\\Banco\\Banco_30.FDB;
- Estou passando o caminho da DLL que está na pasta do Firebird de sua versão;
GOSTEI 0
Fabricio Kawata
27/08/2018
Parabéns Rodrigo por compartilhar a sua solução com a comunidade. Isso é o que nos fortalece como grupo. Sozinho nunca se chega longe.
Forte abraço!
Forte abraço!
GOSTEI 0