Não grava número depois da virgula no banco

Olá,

Não sei exatamente se o problema está no formulário. O que ocorre é o seguinte:

Tenho uma aplicação form_exame, com campos decimais que ao salvar são salvos no banco de duas formas:

No Servidor de Desenvolvimento (Scriptcase) salva os decimais normalmente com os digitos após a virgula (43.67);
No Servidor de Produção salva um valor decimal exato (43.00);

Ambos os bancos estão com as mesmas configurações.

O que pode estar ocorrendo? Seria algo na hospedagem?

Também tive esse problema ao atualizar um formulário, mesmo sem mexer num campo decimal o mesmo foi alterado sem as casas decimais.

Henrique, você disse que teve esse problema, resolveu ele?

Pedro,

A estrutura da tabela em produção é a mesma da desenvolvimento?

Também passei por esse problema, más não anotei na base de conhecimento, então sugiro
Alguns itens para verificar (em produção):

  • charset (conf. scriptcase)
  • internacionalização do SO.

Abraço,

Tulio.

Não… Acredito que seja um bug mesmo, pois o erro ocorreu com uma das aplicações de exemplo do SC8.

Túlio,

A estrutura das tabelas é exatamente a mesma, já o SO, no host eu não sei dizer.

Existe uma forma de ajustar isso nem que seja algo provisório até que eu encontre a real fonte do problema?

Tente o seguinte:

No campo que esta dando o erro, altere “Usar Configurações Regionais” para “Não”. Defina “Agrupamento” e “Separador Decimal” ou deixo o padrão e teste.

Abraço.

Olá Túlio,

Agradeço pela ajuda, porém mais uma vez não funcionou, fiz as alterações regionais, efetuei testes com agrupamento e sem, separador decimal vírgula e ponto, mas nenhum resolveu o problema.

Estou ficando doido com isso. Se não for pedir muito, tem mais alguma ideia? ^^

Tentei mudar o separador decimal de vírgula para ponto na conexão com o banco, mas de nada adianta. No banco tenho o registro gravado com o decimal mas na tela não é exibido. Não consigo nem digitar a vírgula nem o ponto. Bug.

No meu caso eu “contornei”.

Os dados ao submeter não gravavam os decimais no Banco, mantendo sempre zeros após a vírgula.

A solução temporária para esse caso foi mudar o tipo do campo no Banco para VARCHAR, a partir disso os decimais são gravados normalmente como se fosse texto. Para o meu sistema não causa problemas essa mudança, porém quero encontrar a forma mais “correta” de resolver isso.

Vou continuar procurando a raiz do problema e se encontrar uma solução volto a responder aqui.

Também estou com o mesmo problema.

Estou com o mesmo problema agora.!!

olhando o log do banco achei

vlr001 = ‘856,96’

ele esta tratando o numero como caracter

Opa!!

no meu caso, editei a configuração de conexão com o banco, e vi que tava decimal , (virgula) mudei para . (ponto).

E agora tá funcionando … !! blz

E viva os pequenos detalhes. heheeh