Fórum Qual formato para Data e Valor no delphi com Interbase #348642
07/11/2007
Utilizando tipo DATE, no banco fica mm/dd/aaa, mas gostaria que na aplicação se comportasse dd/mm/aaaa, como faria para alterar em todas as situações isso, menos no BD e no caso valor, qual seria a melhor opção decimal ou numeric? Como faria a alteração do separador de decimal e milhar em toda a aplicação e menos no bd também?
Posts
07/11/2007
Mayron Cachina
se vc mostrar num dbgrid vc tem q mudar as configuraçãos de data do windows...
acho que é melhor do q ficar mudando em toda tela que for apresentar...
Utilizando tipo DATE, no banco fica mm/dd/aaa, mas gostaria que na aplicação se comportasse dd/mm/aaaa, como faria para alterar em todas as situações isso, menos no BD e no caso valor, qual seria a melhor opção decimal ou numeric? Como faria a alteração do separador de decimal e milhar em toda a aplicação e menos no bd também?
você pode fazer assim:
ShortDateFormat := ´dd/mm/yy´; // define o formato usado nos campos do tipo data.
DecimalSeparator := ´,´; // determina o separador decimal de números.
ThousandSeparator := ´.´; // define o separador de milhar de um número.
flw.
eu já estava esquecendo, coloque este código no OnCreate ou OnShow do Form principal.
flw.
Muito obrigado, sua dica funcionou como uma luva.
Olá, apesar de utilizar o decimalseparator := ´.´ não estou conseguindo salvar no banco (MySQL 5), eu vejo as informações com virgula no dbgrid porém ao utilizar o clientdataset.applyupdate recebo o erro ´Incorrect decimal value [b:bbc4c080d6]valor[/b:bbc4c080d6]´, esse [b:bbc4c080d6]valor[/b:bbc4c080d6] que no dbgrid estava com ponto, na mensagem de erro aparece com virgula, quando altero nas configurações regionais do windows o valor para decimal (de virgula para ponto) tudo da certo, posso mandar o valor ate com virgula que tudo da certo.
Bom se alguem puder me ajudar desde ja agradeço...
Muito obrigado, sua dica funcionou como uma luva.
ficou faltando acrecentar a barra separador. O ShortDateFormat determina o formato da data, se na configuração do Windows estiver definido a barra separador como sendo [b:4b23351af2]-[/b:4b23351af2] vai dar erro, então por isso que precisa definir o formato da barra.
DateSeparator := ´/´; // define a barra separador de data.
flw.
Olá, apesar de utilizar o decimalseparator := ´.´ não estou conseguindo salvar no banco (MySQL 5), eu vejo as informações com virgula no dbgrid porém ao utilizar o clientdataset.applyupdate recebo o erro ´Incorrect decimal value [b:18b4af1991]valor[/b:18b4af1991]´, esse [b:18b4af1991]valor[/b:18b4af1991] que no dbgrid estava com ponto, na mensagem de erro aparece com virgula, quando altero nas configurações regionais do windows o valor para decimal (de virgula para ponto) tudo da certo, posso mandar o valor ate com virgula que tudo da certo.
Bom se alguem puder me ajudar desde ja agradeço...
estranho isso, será que é o banco? eu utilizo o Firebird aqui, mas se eu descobir algo eu posto aqui.
flw.
Tentei usar o código q vc passou, mas no meu caso queria mudar inclusive no Banco de Dados o formato da Data pra facilitar pesquisa e tudo mais.
Estou usando Delphi 6 e InterBase 6 e meus campos de data estão declarados como TimesTamp, na tela uso o MaskEdit para facilitação!, já mudei o estilo da Data no Painel de Controle e ainda continua MM/DD/YY, tem idéia de como poderia mudar isso?
O banco sempre irá armazenar nesse formato. Para facilitar consultas, procure passar os valores como parâmetros ao invés de concatenar como string.