Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Erro arithmetic exception, numeric overflow INSERT Firebird 1.5 Boa Tarde, Estou enfrentando um problema ao tentar gravar um registro em uma tabela simples, com ID, dois campos de FK e uma descrição em banco de dados Firebird 1.5, ao tentar gravar o registro me retorna o erro SQLSTATE[HY000]: General error: -303 Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation - Já verifiquei se estou mandando gr...
GZ
Erro arithmetic exception, numeric overflow INSERT Firebird 1.5  
Boa Tarde,

Estou enfrentando um problema ao tentar gravar um registro em uma tabela simples, com ID, dois campos de FK e uma descrição em banco de dados Firebird 1.5, ao tentar gravar o registro me retorna o erro

SQLSTATE[HY000]: General error: -303 Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation

- Já verifiquei se estou mandando gravar algum tipo diferente do que o banco de dados solicita;
- Ao executar o comando
TTransaction::setLoggerFunction( function($message) {
echo $message . '
';
});

TTransaction::log("inserting pagina matriz...");
me retorna o log de comandos que foram executados (neste caso um select max e o próprio insert) e quando copio o comando de INSERT e colo para executar direto na ferramenta de banco de dados funciona perfeitamente, porém através da tela de cadastro me retona o erro citado acima.

Não encontrei nenhum tópico falando sobre isso, alguém já teve esse problema??

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (5)


MG

O problema é que está tentando gravar um texto com 50 posições, num campo com 40 posições.
A mensagem "truncate" diz exatamente isso. O conteúdo é maior que o campo pode suportar.
Duas saídas: 1) Limita o campo digitado ou 2) Aumenta o varchar do atributo.
GZ

Oi Marcelo,

Eu verifiquei isso ai também, no banco o campo de DESCRICAO é um VARCHAR(30) e a minha descrição está conforme o print tem 11 caracteres, até foi uma das primeiras coisas que olhei, até fiz um teste rápido e exagerado aqui, aumentei o campo para um VARCHAR(5000) e aconteceu a mesma coisa, com a descrição de 11 caracteres funciona, tanto que eu pego o log de comandos do próprio Adianti gerou e rodo direto no banco de dados e o INSERT funciona.
MG

Confira se é este campo mesmo ou um outro.
Verificou senão está indo espaços em branco, use trim() antes de associar.
Todas as vezes que tive este erro, trata-se de tentar gravar mais caracteres que do era suportado.
GZ

Pois é Marcelo, justamente, todas as vezes que eu também tive o mesmo problema era alguma coisa neste sentido mesmo, verifiquei se estava conectando no banco de dados correto e a principio não existem espaços em branco para gravar no banco, vou continuar tentando por aqui, qualquer progresso eu reporto aqui.
GZ

Boa Tarde

Consegui resolver minha dificuldade, na pasta app/config/conexao.ini e na pasta app/config/conexao.php para o Firebird 1.5 utilizar o prep="0" -> para não utilizar prepare stateless caso não fizer esta configuração não irá funcionar a gravação de dados.