CLIENTDATASET AREDONDA VALOR COM CENTAVOS

Delphi

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".
Valdelir Castanheiro

Valdelir Castanheiro

Curtidas 0

Respostas

Rafael Mattos

Rafael Mattos

14/06/2011

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
GOSTEI 0
Valdelir Castanheiro

Valdelir Castanheiro

14/06/2011

ESTOU PASSANDO CAMPO.VALUE
GOSTEI 0
Rafael Mattos

Rafael Mattos

14/06/2011

ESTOU PASSANDO CAMPO.VALUE


tenta com asCurrency


--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
GOSTEI 0
Valdelir Castanheiro

Valdelir Castanheiro

14/06/2011

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
GOSTEI 0
Rafael Mattos

Rafael Mattos

14/06/2011

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
GOSTEI 0
Valdelir Castanheiro

Valdelir Castanheiro

14/06/2011

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
GOSTEI 0
Natal Lima

Natal Lima

14/06/2011

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
GOSTEI 0
Valdelir Castanheiro

Valdelir Castanheiro

14/06/2011

Não funcionou, continua trazendo os valores aredondado sem os centavos
GOSTEI 0
William Galleti

William Galleti

14/06/2011

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!
GOSTEI 0
Wilson Junior

Wilson Junior

14/06/2011

Tente excluir o Field do ClientDataSet e incluí-lo novamente.

Espero ter colaborado.
GOSTEI 0
Natal Lima

Natal Lima

14/06/2011

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
GOSTEI 0
Valdelir Castanheiro

Valdelir Castanheiro

14/06/2011

Não sei o que fazer não funcionou com nenhuma sujestão aqui postada
GOSTEI 0
Wilson Junior

Wilson Junior

14/06/2011

Qual tipo está declarado este campo no seu ClientDataSet?
GOSTEI 0
Valdelir Castanheiro

Valdelir Castanheiro

14/06/2011

no oracle esta declarado como bcd
GOSTEI 0
Wilson Junior

Wilson Junior

14/06/2011

Mas e no ClientDataSet?
GOSTEI 0
José

José

14/06/2011

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0
POSTAR