Search the Community
Showing results for tags 'tipo de campo'.
-
prezados, boa tarde hoje em dia uso Delphi 2010, Firebird 2.52, DBX (dbExpress) e tudo certo estou migrando p/ Delphi 10.4, Firebird 3.0 e FireDAC e resolvi fazer a migração "no braço", entre outras razões para aprender sobre o novo ambiente topei com uma situação incomum, procurei informações e não encontrei antes de reportar o problema à Embarcadero resolvei consulta-los, até mesmo para confirmar tratar-se efetivamente de um problema num SELECT usando o FDQuery um campo tipo Numeric(7,3) ou Numeric(9,3) gera campo Currency com Precision 15 - para manutenção da configuração original só usando CAST as Numeric(18,3) esse mesmo campo se utilizo MAX ou MIN num SELECT gera campo BCD e aqui não adiantou o CAST e esse problema ocorre em qq tabela em campos com essa configuração (inteiros menor que 10 e decimal maior que 2) - inteiro maior que 10 está ok, ao menos até onde pude ver então, usando Delphi 10.4 esse problema inicialmente identificado c/ Firebird 3 também se repetiu com 2.52 usando o FireDAC, mas não usando o DBX - aparentemente o problema é do FireDAC configurando o "Data Mapping Rules" no FDConnection ou em FDQuery e mapeando esses tipos estranhos ao Firebird para FmtBCD (como é originalmente gerado) aí tudo funciona legal pelo que sei esse mapeamento de conversão de tipo de campo seria aplicável apenas para equalizar tipos de bancos distintos usados na aplicação e compartilhando o mesmo código - foi o que vi numa apresentação do Fernando Rizzato no caso presente o que está ocorrendo é atribuição de tipo estranho ao banco de dados - Currency e BCD não existem no Firebird a principio o problema está resolvido mas estou agora com "a pulga atrás da orelha" pq não sei se pode haver outras implicações, se o driver do Firebird está devidamente incorporado pelo FireDAC, se não terei problemas outros em decorrência desse... obrigado por seus comentários ou sugestão