Decimal ou Float
Olá pessoal,
Queria saber que tipo de campo no SQLServer vcs usam pra criar campos com valores reais. Float ou Decimal(n, m)?
Sempre utilizei float, mas o SQLServer armazena com muuuuuitas casas decimais gerando pequenos erros no delphi, pois utilizo somente duas casas decimais.
Migrei todos os meus campos float para Decimal(9,2) e até agora o resultado está ótimo. Queria saber se tem algum problema em utilizar campos do tipo Decimal no Delphi??
Abraço,
Adriano Silveira.
Queria saber que tipo de campo no SQLServer vcs usam pra criar campos com valores reais. Float ou Decimal(n, m)?
Sempre utilizei float, mas o SQLServer armazena com muuuuuitas casas decimais gerando pequenos erros no delphi, pois utilizo somente duas casas decimais.
Migrei todos os meus campos float para Decimal(9,2) e até agora o resultado está ótimo. Queria saber se tem algum problema em utilizar campos do tipo Decimal no Delphi??
Abraço,
Adriano Silveira.
Adsilver
Curtidas 0
Respostas
Bon Jovi
16/01/2005
Pelo contrário, terá problema se usar float nesse caso, como vc mesmo já viu. A única diferença no Delphi é q os TFields serão do tipo BCD.
GOSTEI 0
Adsilver
16/01/2005
Entao devo usar decimal, certo?
Foi isso que fiz... troquei todos os campos no servidor de float pra decimal(9,2).
Um detalhe é que meus fields no delphi continuam sendo TFloatField. Já os removi e adicionei, e continuam como TFloatField. Esse comportamento está correto?
Abraço e valeu Bon Jovi.
Foi isso que fiz... troquei todos os campos no servidor de float pra decimal(9,2).
Um detalhe é que meus fields no delphi continuam sendo TFloatField. Já os removi e adicionei, e continuam como TFloatField. Esse comportamento está correto?
Abraço e valeu Bon Jovi.
GOSTEI 0
Bon Jovi
16/01/2005
Sim, qdo vc precisa definir a precisão, o Decimal ou Numeric é o tipo mais indicado pro caso.
Sobre os TFields do Delphi, depende do driver de acesso. Qual pacote de componentes está usando? No caso do ADO (com driver OLE DB for SQLServer) ele deveria vir como TBCDField. A propriedade EnableBCD deve estar setado pra True nos DataSets, q já é default, mas certifique.
Sobre os TFields do Delphi, depende do driver de acesso. Qual pacote de componentes está usando? No caso do ADO (com driver OLE DB for SQLServer) ele deveria vir como TBCDField. A propriedade EnableBCD deve estar setado pra True nos DataSets, q já é default, mas certifique.
GOSTEI 0
Adsilver
16/01/2005
To usando com o velho BDE mesmo. Deve ser por isso q vem como FloatField. Para SQLServer, qual é mais recomendável para eu migrar, DBX ou ADO? E Interbase?
Valeu cara...
Valeu cara...
GOSTEI 0
Bon Jovi
16/01/2005
Pra SQLServer o ADO (via OLE DB) é o mais apropriado, e vc encontrará uma quantidade bem maior de conteúdo na Internet sobre ADO com SQLServer. Em pequenos testes achei o dbExpress (q tb usa OLE DB) um pouco mais rápido em algumas situações, mas mesmo assim ainda prefiro o ADO por ser do proprio fabricando do SQLServer.
Sobre BDE, a última vez q usei foi em 2001, e se não me falhe a memória vc pode habilitar o BCD na configuração do BDE Administrator. Vi aqui agora, vai no driver MSSQL e procura por Enable BCD.
Já pra Interbase sem dúvida o dbExpress é mais indicado.
Sobre BDE, a última vez q usei foi em 2001, e se não me falhe a memória vc pode habilitar o BCD na configuração do BDE Administrator. Vi aqui agora, vai no driver MSSQL e procura por Enable BCD.
Já pra Interbase sem dúvida o dbExpress é mais indicado.
GOSTEI 0