Fórum CLIENTDATASET AREDONDA VALOR COM CENTAVOS #402991
14/06/2011
ESTOU FAZENDO UM PROGRAMA Q CONECTA NO ORACLE PARA IMPORTAR CAMPOS DE UMA TABLEA ORACLE PARA UMA TABELA DO RIREBIRD, ESTOU USANDO O SISTEMA CLIENT/SERVER ONDE A QUERY ESTÃO NO SERVER E USO O CLIENTDATASET COM MIDAS PARA PEGAR OS DADOS NO CLIENT, NO SERVER ESTOU USANDO A CONEXÃO ADO PARA CONECTAR COM O BANCO ORACLE, O QUE ACONTECE É OS VALOS QUE ESTÃO NO BANCO DE DADOS ORACLE TEM DECIMAL(CENTAVOS) QUANDO FAÇO UMA CONEXÃO COM UM FORMULARIO CONECTANTO DIRETO NO ORACLE E MOSTRO EM UM GRID MOSTRA OS VALORES COM CENTAVOS, QUANDO FAÇO ATRAVÉS DO CLIENTDATASET PEGANDO OS DADOS DO SERVER E ENVIANDO PARA O CLIENT, OS CAMPOS VEM AREDONDADOS SEM OS CENTAVOS, GOSTARIA DE SABER COMO RESOLVER ESTE PROBLEMA, OUTRA COISA O CAMPO NA TABLE A ORACLE É TO TIPO "BCD".
Posts
Como está declarado essas variaveis?
como vc está passando os valores?
por exemplo se vc passa
Campo.asInteger, ele vai arredondar mesmo
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
14/06/2011
Valdelir Castanheiro
ESTOU PASSANDO CAMPO.VALUE
ESTOU PASSANDO CAMPO.VALUE
tenta com asCurrency
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
14/06/2011
Valdelir Castanheiro
NÃO TEM JEITO, NÃO FUNCIONOU, ACONTECE O SEGUINTE COLOQUEI UM GRID PRA MOSTRAR O VALOR QUE ESTA VINDO DO BANCO ORACLE E NO GRID JA MOSTRA SEM OS CENTAVOS
NÃO TEM JEITO, NÃO FUNCIONOU, ACONTECE O SEGUINTE COLOQUEI UM GRID PRA MOSTRAR O VALOR QUE ESTA VINDO DO BANCO ORACLE E NO GRID JA MOSTRA SEM OS CENTAVOS
mas como está declarado no Oracle?
quando vc faz o select la no Oracle mostra certo?
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
14/06/2011
Valdelir Castanheiro
Quando eu faço um formulario sem ser clint/server, com conexão adoconection e adoquery mostra certo, so não mostra certo quando eu uso clientdataset conectado através do datasetprovider ai não retorna correto no datasetclient
No ClientDataSet, ao dar dois cliques, abrirá o fields editor, certo? Selecione o campo que quer configurar e no Object Inspector, haverá uma propriedade chamada Currency. Mude ela para True e veja se deu certo. Já mudará no DBgrid
15/06/2011
Valdelir Castanheiro
Não funcionou, continua trazendo os valores aredondado sem os centavos
15/06/2011
William Galleti
Opa.
Passei por varios dias até achar uma solução. Não sei se é a mais correta mais funcionou.
Adicione uma query (qrDecimais) com o sequinte SQL:
alter session set nls_numeric_characters = '.,'
No afterconnect do conector com o banco (Ado, DbExpress) mande executar a query.
[code]
try
qrDecimais.ExecSQL;
except
on e : exception do
begin
MessageDlg(e.Message, mtError, [mbOk], 0);
end;
end;
[code]
Espero ter ajudado!
Tente excluir o Field do ClientDataSet e incluí-lo novamente.
Espero ter colaborado.
Você checou as opções regionais no painel de controle do seu Windows?Certifique que na aba números, o número de casas decimais esteja 2 e na aba unidade monetária também esteja marcado 2.
Espero que tenha ajudado
Natal de Limanataldelima.blogspot.com
15/06/2011
Valdelir Castanheiro
Não sei o que fazer não funcionou com nenhuma sujestão aqui postada
Qual tipo está declarado este campo no seu ClientDataSet?
16/06/2011
Valdelir Castanheiro
no oracle esta declarado como bcd