Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2875 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde Pessoal.

   Até então utilizamos o DBExpress para conexão com banco de dados e utilizamos os componentes SQLConnection + SQLDataSet + DataSetProvider + ClientDataSet.

   Agora resolvemos trocar o DBExpress para o Firedac que já tem conexão nativa com o postgres não precisando mais usar o ODBC.

  Conseguimos trabalhar apenas trocando os componentes SQLConnection  por FDConnection1 e o SQLDataSet pelo FDQuery, mantendo todo o resto, sem fazer praticamente nenhuma alteração.

 

   Agora encontramos um problema que talvez alguém já tenha passado ou tenha alguma dica. Toda vez que vou salvar alguma informações na base de dados que se refira a um campo hora, por exemplo,

          ClientDataSet.FieldByName('hor_abastecida_poabas').AsDateTime := now;

ele sempre esta gravando com os milissegundos juntos, '16:37:40.413' e não gostaria que ele fizesse assim e apenas até os segundos '16:37:40'.

Tem alguma forma de configurar isso no Firedac? No DBExpress salvava da forma correta.

 

 

Postado

certo, mais tem a possibilidade de trabalhar apenas substituindo SQLConnection e SQLDataSet  pelos FDConnection e FDQuery, assim mantendo a estrutura que já vinha sendo usado com dbExpress.

Quais componentes você utiliza do FireDac?

  • 2 semanas depois ...
Postado
Em 30/12/2016 at 11:08, Juliomar Marchetti disse:

FDConnection, FDQuery, FDTransaction

Boa tarde Juliomar,

   Fiz um programa de testes para verificar o caso da gravação dos campos time no postgres utilizando os componentes do Firedac (FDConnection, FDQuery, FDTransaction) e continuou gravando com milissegundos.

  Fiz o teste passando os dados da seguinte forma FDQuery1.FieldByName('hora').AsDateTime := time; e ele grava no formato '10:17:22.708'. Se eu passar como string FDQuery1.FieldByName('hora').AsString e fazer um FormatDateTime('hh:nn:ss', now); ai ele grava certo.

  Pelo que vc já comentou não teve esse problema, talvez saiba como contornar isso, talvez tenha alguma configuração que eu ainda não tenha encontrado nos componentes Firedac.

 

Desde já agradeço.

Postado

Bom dia,

  Só para conhecimento, não encontrei configuração para alterar essa situação, então utilizei a função RecodeMilliSecond(hora, 0); da unit DateUtils que dessa forma passo como zero o valor dos millisegundos e ajusta meu problema.

  • Este tópico foi criado há 2875 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.