Erro com datas (DBExpress/Firebird/D7)

21/08/2008

0

Por que sempre que recupero uma data (dd/mm/yyyy) do GDB com um TDBEdite e logo em seguida quero limpar/apagar o mesmo, o sistema retorno a mensagem de ´data inválida´? Como resolvo isso? O sistema grava certinho e recupera a data certanha. Estou utilizando DBExpres + Firebird + D7.

Obrigado e aguardo qualquer ajuda.


Aprendiz_ce

Aprendiz_ce

Responder

Posts

21/08/2008

Marco Salles

hummmm...

erro clássico .... Vc deve ter alguma mascara no field .

tem que programar o evento ongettext


Responder

24/08/2008

Catunda

Se vc quer apenas limpar o DbEdit sem alterar o valor do campo, basta fechar o dataset.
Mas se pretende apagar o valor da data precisa dar um clear nela. Exp:

ClientDataSet1Dtnascimento.Clear;

Solamente isto.


Responder

24/08/2008

Marco Salles

ClientDataSet1Dtnascimento.Clear;


Catunda isto funciona como opção de Limpar , mas não resolve o Problema de Edição ...

Mesmo que voce Limpe este Campo se o Usuário
Digitar uma Data Válida e depois dar um backspace por exemplo , a Titulo de Limpar a Data ele obtera o Erro ao sair do Controle DataWare.
< Estou falando de campos que Tem mascarás nos TFields >

Então a Saida é usar o Evento OnGetText.


Responder

24/08/2008

Catunda

Como ele falou: ´... e logo em seguida quero limpar/apagar o mesmo,...´

Sem o Clear ele não consegue limpar o campo, seja qual for a mascara utilizada.

Mas para um controle completo do campo, basta acrescentar o codigo abaixo ao evento OnSetText da variável correspondente à data:


try
if Trim(Text)=´/ /´ then Sender.Clear
else Sender.AsString:=Text;
except
on e:econverterror do
begin
ShowMessage(´Data inválida!´);
Abort;
end;
end;

É a mesma rotina que utilizo e nunca falhou.


Responder

24/08/2008

Marco Salles

Como ele falou: ´... e logo em seguida quero limpar/apagar o mesmo,...´ Sem o Clear ele não consegue limpar o campo, seja qual for a mascara utilizada


consegui ... cds.fieldByName(´Campo´).asstring:=´´;

Mas para um controle completo do campo, basta acrescentar o codigo abaixo ao evento OnSetText da variável correspondente à data:


OnSetText ... Claro ... E eu falando OnGetText . Não posso editar

http://forum.devmedia.com.br/viewtopic.php?t=94492&highlight=onsettex¬2A


Responder

26/01/2009

Aprendiz_ce

[quote:9249da802e=´Marco Salles´]
Como ele falou: ´... e logo em seguida quero limpar/apagar o mesmo,...´ Sem o Clear ele não consegue limpar o campo, seja qual for a mascara utilizada


consegui ... cds.fieldByName(´Campo´).asstring:=´´;

Mas para um controle completo do campo, basta acrescentar o codigo abaixo ao evento OnSetText da variável correspondente à data:


OnSetText ... Claro ... E eu falando OnGetText . Não posso editar

http://forum.devmedia.com.br/viewtopic.php?t=94492&highlight=onsettex¬2A[/quote:9249da802e]

Olá Marco,

O problema é edição do campo. O campo tá vazio (branco), o usuário digita a data e caso ele apague tudo do campo, ele nao consegue sair do campo, pois o mesmo fica lançando a mensagem de data invalida mesmo com o campo vazio (branco).

Obrigado pela atenção e aguardo comentário.


Responder

26/01/2009

Aprendiz_ce

Como ele falou: ´... e logo em seguida quero limpar/apagar o mesmo,...´ Sem o Clear ele não consegue limpar o campo, seja qual for a mascara utilizada. Mas para um controle completo do campo, basta acrescentar o codigo abaixo ao evento OnSetText da variável correspondente à data: try if Trim(Text)=´/ /´ then Sender.Clear else Sender.AsString:=Text; except on e:econverterror do begin ShowMessage(´Data inválida!´); Abort; end; end; É a mesma rotina que utilizo e nunca falhou.


Olá Catunda,

Nesse exemplo terei que colocar esse procedimento em cada campo data, é isso? Não tem como fazer isso de um forma GLOBAL para toda a aplicação?

Obrigado e aguardo e qualquer comentário.


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar