 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Nysp Novato

Registrado: Terça-Feira, 4 de Mai de 2010 Mensagens: 22
|
Enviada: Qui Set 22, 2016 8:23 am Assunto: DateTimePicker + Bind: "is not valid time" (D 10 Seattle) |
|
|
Bom dia,
estou utilizando o novo Delphi 10 Seattle e estou com um problema utilizando o DateTimePicker.
Tenho um campo em minha tabela (banco MySQL) do tipo "TIME NOT NULL DEFAULT '00:00:00'". Esse campo sempre trabalhei sendo somente time, nunca datetime.
Em meu antigo projeto com esse mesmo banco de dados, onde utilizava Delphi 7, eu utilizava um componente de terceiro com um DBDateTimePicker e funcionava perfeitamente.
Porém, com a migração do meu projeto para o D10 Seattle, não tenho mais componentes de terceiros e estou usando tudo nativo. Para campos de data e hora, estou utilizando o DateTimePicker e linkando eles com Bind nos campos de minha tabela, "transformando" eles em DBWare já que (como todos sabem) não existe um DBDateTimePicker natigo (mancada antiga da Embarcadero).
Para os campos de data, funciona perfeitamente. Mas para os campos de hora, não funciona. Alterei a propriedade Kind para dtkTime, linkei o componente no Bind com minha query e simplesmente, no momento de trocar a hora, aponta o erro seguinte erro: "30/12/1899 07:19:00' is not a valid time". Já tentei colocar no Format "HH:mm:ss" mas não adiantou.
Existe alguma propriedade ou algo que eu possa fazer sem que tenha que alterar o campo do meu banco de dados para datetime?
Quem puder colaborar, agradeço
Abraço a todos |
|
Voltar ao Topo |
|
 |
3Soft-Oto Novato

Registrado: Quarta-Feira, 14 de Setembro de 2016 Mensagens: 10
|
|
Voltar ao Topo |
|
 |
Nysp Novato

Registrado: Terça-Feira, 4 de Mai de 2010 Mensagens: 22
|
Enviada: Sex Set 23, 2016 11:47 am Assunto: |
|
|
3Soft-Oto, obrigado pela resposta, mas nenhuma das situações funciona.
Sobre alterar a SQL, eu teria que manipular o banco e,mesmo assim, no exemplo que você enviou ele está usando CAST ou CONVERT pois, como eu disse, estou usando Bind no componente DateTimePicker, convertendo ele para outro tipo irá aparecer um novo erro. Fora que é um insert na tabela, o resultado final ainda teria que ser do tipo Time, como está no banco de dados.
Sobre o código que você postou, não há evento para ele ser passado pois estou usado Bind. O Bind linka o componente diretamente a minha Query/Table, fazendo ele ter o comportamento de um componente DBWare. Não conheço nenhum evento no DateTimePicker que seja chamado antes do Bind já enviar o resultado para a tabela. Isso só funcionaria, caso algum evento fosse anterior a alteração do valor na tabela, o que não acho que exista (testei em vários e nenhum funcionou).
Caso alguém ainda possa ajudar de outra forma, agradeço. |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|