Valores errados no MySQL
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...
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
Curtidas 0
Melhor post
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.
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
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:
Se puder colocar trecho do código que esta utilizando pra pegar os dados do BD
Att.Cauê Nishijima
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
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.
Uso para conexão ADO.
Sim, já faço uso do decimalseparator.
Qualquer sugestão é bem vinda.
Obrigado novamente.
GOSTEI 0
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.
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
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.
É 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