Pular para o conteúdo
Claro
Português

Problemas e Soluções

Na conexão com o banco de dados Firebird na versão 3.0 pode ser exibido o erro abaixo ao tentar conectar:

Captura da tela 1

Para solucionar isso, pode ser que seja preciso configurar o arquivo firebird.conf que se localiza na pasta de instalação do banco de dados ( Geralmente no diretório C:\Program Files\Firebird\Firebird_3_0 ). Abra o arquivo com um editor de texto e procure a linha que se inicia com:#WireCrypt = e altere para WireCrypt = Enabled.

Captura da tela 2

Após feita a mudança é preciso reiniciar o serviço do banco de dados. Ao entrar na opção Gerenciador de tarefas e procure a instância do banco Firebird e reinicie.

Captura da tela 3

Após feito isso, o Sincronizador deve conseguir se conectar com o banco Firebird.

Captura da tela 4

Inserção de dados no Firebird 2.5 não conlui o comando

Seção intitulada “Inserção de dados no Firebird 2.5 não conlui o comando”

Ao executar um SQL de insert no banco de dados Firebird o comando não finaliza, deixando o sincronizador como se ele estivesse trancado

Captura da tela 5

Para resolver isso, precisamos adicionar a string de conexão o parâmetro: ?useFirebirdAutocommit=true“

Captura da tela 6

Lidando com problemas de caracteres entre a recepção e o banco de dados

Seção intitulada “Lidando com problemas de caracteres entre a recepção e o banco de dados”

No caso de tiver problema de formatação de caracteres em função de UTF8, ANSI ou outros, a orientação é no comando INSERT que é executado no banco de dados, colocar rotinas de conversão de UTF8 para o formato desejado. No caso de SQLSERVER com Ansi, verifique o exemplo da imagem abaixo.

Captura da tela 7

Falha ao conectar no banco de dados. Erro: The driver could not establish a secure connection to SQL Server

Seção intitulada “Falha ao conectar no banco de dados. Erro: The driver could not establish a secure connection to SQL Server”

Falha ao conectar no banco de dados. Erro: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: “The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”. ClientConnectionId:d3ddc8c2-e973-4092-9195-7e473f217380

Captura da tela 8

Solução:

https://stackoverflow.com/questions/67246010/the-server-selected-protocol-version-tls10-is-not-accepted-by-client-preferences

Falha ao conectar com o banco de dados: Erro Unknown initial character set index ‘255’ received from server. Initial client character set can be forced via the ‘characterEncodin’ property.

Seção intitulada “Falha ao conectar com o banco de dados: Erro Unknown initial character set index ‘255’ received from server. Initial client character set can be forced via the ‘characterEncodin’ property.”

Captura da tela 9

Captura da tela 10

Solução:

Adicionar ao final da string de conexão ?characterEncoding=utf8

Captura da tela 11

Ao atualizar para o Firebird 5.0, identificamos que algums SQLs que funcionavam normalmente em versões anteriores passaram a apresentar falhas. Isso ocorreu devido a mudanças significativas no mecanismo interno de tratamento e validação de tipos de dados na nova versão.

Assim como no ERP, no Sincronizador também se torna necessário ajustes nas queries, especialmente envolvendo conversões numéricas.

Erro apresentado

O erro mais recorrente é:

SQL type for this field is not yet supported.

Este problema costuma estar relacionado a conversões para tipos do padrão NUMERIC(10,2) ou semelhantes.

Como resolvemos

Com base nos casos que já enfrentamos, as correções envolveram duas abordagens principais:

1. Ajustar a string de conexão

Adicionar explicitamente COLLATION e DIALECT na string de conexão para garantir compatibilidade com o banco.

jdbc:firebirdsql:localhost/3050:C:\CAMINHO\BANCO.FDB?charSet=UTF-8&sql_dialect=3

2. Alterar conversões numéricas para DOUBLE PRECISION

Em vários cenários, conversões para NUMERIC ou DECIMAL passaram a gerar erro. A solução foi substituir por DOUBLE PRECISION.

Antes:

SELECT

CAST(CAMPO AS NUMERIC(15,4)) AS NomeCampo

FROM

TABELA

Depois:

SELECT

CAST(CAMPO AS DOUBLE PRECISION) AS NomeCampo

FROM

TABELA