| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
eduardoserrao Novato


Registrado: Segunda-Feira, 28 de Novembro de 2016 Mensagens: 78
|
Enviada: Seg Dez 12, 2016 8:00 am Assunto: TClientDataSet não pega corretamente campo decimal |
|
|
Boa tarde pessoal,
Estou com um problema ao recuperar valores decimais do SQLite.
Tenho uma tabela produto com uma coluna valor, e nesta tabela tenho alguns registros com valores decimais.
Mas quando tento recuperar esses valores para adicionar no listview eles aparecem apenas a parte inteira.
Estou utilizando TClientDataSet, TDataSetProvider e TFDQuery;
Setei a consulta SQL no TFDQuery.
Depois apontei meu TFDQuery na propriedade DataSet do meu TDataSetProvider
E depois apontei meu TDataSetProvider na propriedade providerName do meu TClientDataSet.
| Código: | while not DM.ClienteDataSet.Eof do
begin
Item := lsViewProdutos.Items.Add;
Item.Text := DM.ClienteDataSet.FieldByName('DESCRICAO').AsString;
Item.Data[TMultiDetailAppearanceNames.Detail1] := 'Valor Varejo: R$' + FormatFloat(',.00',DM.ClienteDataSet.FieldByName('VALOR').AsFloat);
DM.ClienteDataSet.Next;
end; |
Alguém sabe como posso pegar o valor certo?
Abraços; |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Qui Dez 15, 2016 3:07 pm Assunto: |
|
|
Verifica o tipo do campo no ClientDataSet e na FDQuery, caso ambos estejam como Float, coloca um breakpoint logo na abertura da query e verifica o valor que a query está trazendo.
Você pode procurar por pontos de arredondamento também. |
|
| Voltar ao Topo |
|
 |
eduardoserrao Novato


Registrado: Segunda-Feira, 28 de Novembro de 2016 Mensagens: 78
|
Enviada: Qui Dez 15, 2016 5:27 pm Assunto: |
|
|
Oi leo,
Você fala para verificar o tipo nos fields? meu componente TFDQuery não está com SQL e nem fields, eu passo a SQL em tempo de execução. estou usando meus componentes para 2 tabelas, alterando a consulta e os campos que eu quero pegar do ClientDataSet em tempo de execução. |
|
| Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Sex Dez 16, 2016 9:27 am Assunto: |
|
|
| Entendi, nesse caso, tenta debugar o código para acompanhar o valor em tempo de execução, desde o momento de abertura da query até o momento que o valor é utilizado. |
|
| Voltar ao Topo |
|
 |
|