Valores errados no MySQL

MySQL

Delphi

13/02/2015

Olá pessoal...

To com um problema complicado, vou explicar:

Tenho um sistema feito em Delphi com banco de dados MySQL 5.5.
O sistema funciona muito bem, porém ao exibi-lo seja num Edit, num DbEdit ou num DbGrid, o valor é exibido corretamente, desde que não esteja entre 1.000 - 9.999.

Ou seja, valores exibidos de 0 até 999 e de 10.000 até infinito, são exibidos corretamente, mas se estiver entre o intervalo citado acima, não exibe corretamente.
O que exibe?
Exibe o valor multiplicado por 1.000.000 (Um Milhão).
Exemplo: ao invés de 1.000, é exibido 100.000.000.

Informações úteis:
** O valor no banco de dados está correto. Se for feito um select o valor se mostra como tem que aparecer, somente no sistema não.
** Fiz um sistema de teste, apenas com um DbGrid e com um DbEdit, sem qualquer tipo de formatação, e o valor é exido errado também.
** O tipo dos campos é Decimal(10,3) e o banco é InnoDB.
** Pelo que verifiquei no Painel de Controle, as configurações de valores (decimal, moeda e etc) estão corretas.
** Já formatei a máquina, mudei o sistema operacional e nada funciona, mas em outras máquinas funciona perfeitamente.

Enfim, não sei mais o que fazer, se alguém tiver qualquer ideia... é bem vinda.
Desde já fico agradecido aos companheiros...
Andrey

Andrey

Curtidas 0

Melhor post

Andrey

Andrey

25/02/2015

Pessoal,

Consegui!!!!

O problema era o driver ODBC.
Quando deu o problema, foi a primeira coisa que imaginei.
Troquei por alguns drivers, mas não funcionaram.

Decidi fazer teste com mais alguns e funcionou!!

De qualquer forma, muito obrigado a todos pela ajuda.
PS: Desculpem a demora pelo FeedBack.
GOSTEI 1

Mais Respostas

Cauê Nishijima

Cauê Nishijima

13/02/2015

Olá Andrey,

Muito estranho mesmo esse seu problema. Que componente você esta utilizando pra acessar os dados? DBExpress?

Já tentou colocar no Create do projeto:

DecimalSeparator := ',' ; 


Se puder colocar trecho do código que esta utilizando pra pegar os dados do BD

Att.Cauê Nishijima
GOSTEI 0
Andrey

Andrey

13/02/2015

Olá amigo, obrigado pela resposta.

Uso para conexão ADO.

Sim, já faço uso do decimalseparator.

Qualquer sugestão é bem vinda.

Obrigado novamente.
GOSTEI 0
Marlos Silva

Marlos Silva

13/02/2015

Já tentou usar uma mascara para o valor de moeda ??

obs: remova a formato moeda e teste esse aqui #,##0.00

uso o firebird 2.5 e já aconteceu de ficar doido as vezes também
mais a mascara corrigiu uso ClientDataSet, va na prorpriedade EditMask do field desejado e teste.
GOSTEI 0
Douglas

Douglas

13/02/2015

Olá Andrey, tudo bem?
É bem provável que você esteja utilizando o objeto ClientDataSet. Faça o seguinte, selecione o campo do seu Cds que está com este problema e marque a propriedade currency como true. Verifique se irá funcionar! Aguardo o seu feedback.
GOSTEI 0
POSTAR