[firebase-br] Tipo de campo numérico, float, Conversão FB 3 + IbObjects

Gladiston Santana gladiston em vidy.com.br
Sex Out 25 14:20:16 -03 2019


Os tipos BCD tiveram uma padronização recente no novo Delphi e por isso os
TFields da nova versão são incompativeis com os TFields anteriores do tipo
BCD.
Suas opções são remover os TFields e incluí-los novamente ou então usar um
recurso do TFDConnection para mapear os tipos, há um video da embarcadero
no youtube (em portugues) que mostra como fazer isso, tem até um exempl
usando o BDE.

Quando ao que usar como tipo, bem não existe currency no Firebird, então
você pode usar float mesmo ou numeric(18,2).
Um problema ao usar numeros são as precisões quando você junta um conjunto
de dados e os soma no delphi e os soma também no firebird e notará que
haverá diferenças.
O delphi pode trabalhar com corrency ou float (double) então se vier a usar
numeric(18,2) e tiver que jogar seu valor numa variavel currency ou double
no delphi  você perderá a precisão que havia e notará resultados diferentes
de soma. Eu tentei procurar na documentação do delphi a muito tempo atrás
em como criar um tipo numerico que represente (18,2) nativamente, mas não
encontrei como, mas achei um monte de explicação do porque não fazer isso.
Assim, se desejar precisão absoluta é melhor usar float no banco (double no
delphi) e se preocupar apenas em mascarar os resultados com 2 casas.

[]´s e sucesso.

Em sex, 25 de out de 2019 às 11:30, Gustavo Novaes <gutonovaes19 em gmail.com>
escreveu:

> Bom dia.
>
> Estive lendo um documento no site sobre o assunto.
> Estou convertendo o banco de dados paradox para Firebird 3.
>
> Tenho campos numéricos com seguintes propositos.
> - valores monetários - No paradox, ftcurrency e Float.
> - índices de conversão de moeda - float
> - expressão de medidas (metros, centimetros, área) - float
>
> Quais tipos de dado devo usar no banco de dados firebird ?
>
> Após converter as units delphi, campos float foram configurados como Bcd.
> Está causando erro "type mismatch for field xxxx, expecting float atual:
> BCD-Edatabaseerror.
>
> Esse erro deve-se ao tipo de campo usado no banco ou preciso fazer algum
> ajuste no IboOjects?
>
> PS: Cantu, não vi que errei o endereço de destinatário e acabei enviado
> errado. Desculpe-me.
> Obrigado.
>
> *Gustavo Novaes *
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>


-- 
A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
na Melhoria Continua.

Em março de2018 migramos com sucesso para a nova versão da ISO 9001.

Somos a única Empresa Brasileira de Engenharia de Laboratórios com
certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
Fabricação e Instalação de Laboratórios.



Mais detalhes sobre a lista de discussão lista