Erro ao sair do MaskEdit
No meu projeto tenho um MaskEdit que abre com a data do dia. Quando o usuario vai pesquisar por nome e não pela data, ao apagar a data do campo e sair aparece o seguinte erro:
" / / ' is not a valid date'
Minha mascara está com !99/99/9999;1;_
Já testei outras maneiras que vi aqui no fórum, mas nenhuma dá certo.Algúem pode me ajudar?
" / / ' is not a valid date'
Minha mascara está com !99/99/9999;1;_
Já testei outras maneiras que vi aqui no fórum, mas nenhuma dá certo.Algúem pode me ajudar?
Deise Souza
Curtidas 0
Melhor post
Natanael Ferreira
10/05/2017
Faça um teste alterando seu código para:
{ Data }
if MaskEdit1.Text <> ' / / ' then
begin
SQLConsultaAgendamento.SQL[19] := ' and a.data_radiografia = : data ';
SQLConsultaAgendamento.ParamByName('data').AsDate :=
StrToDate(MaskEdit1.Text);
end
else
begin
SQLConsultaAgendamento.SQL[19] := ' / * SQL dinamico * / ';
end;GOSTEI 1
Mais Respostas
Robson Morais
10/05/2017
você faz alguma validação no exit do campo ? ou a tem alguma informação (espaço ou outro caracter) no campo da data ?
Porque uso aqui e não tenho esse problema, o que pode fazer também caso não descubra é colocar um codigo assim no exit do campo:
if (data.text = ' / / ') then exit;
acho que não vai dar mais o erro;
Porque uso aqui e não tenho esse problema, o que pode fazer também caso não descubra é colocar um codigo assim no exit do campo:
if (data.text = ' / / ') then exit;
acho que não vai dar mais o erro;
GOSTEI 0
Deise Souza
10/05/2017
No OnExit do MaskEdit não coloquei nada. Tem uma parte do código no campo data para consulta no banco, com o seguinte código:
if MaskEdit1.Text <> '' / /'' then
begin
SQLConsultaAgendamento.SQL[19] := '' and a.data_radiografia = :data '';
SQLConsultaAgendamento.ParamByName(''DATA'').AsDate :=
StrToDate(MaskEdit1.Text);
end
else
begin
SQLConsultaAgendamento.SQL[19] := '' /* sql dinamico */ '';
end;
Testei esse que vc falou e continua dando o mesmo erro
if MaskEdit1.Text <> '' / /'' then
begin
SQLConsultaAgendamento.SQL[19] := '' and a.data_radiografia = :data '';
SQLConsultaAgendamento.ParamByName(''DATA'').AsDate :=
StrToDate(MaskEdit1.Text);
end
else
begin
SQLConsultaAgendamento.SQL[19] := '' /* sql dinamico */ '';
end;
Testei esse que vc falou e continua dando o mesmo erro
GOSTEI 0
Robson Morais
10/05/2017
Post o seu codigo, porque estou testando aqui e não estou capturando esse erro;
GOSTEI 0
Deise Souza
10/05/2017
Deu certo, o que estava errado, é que na data estava faltando dois espaços no final ('' / / ''), pq o ano é com os 4 digitos e só estava o espaço para dois. Muito obrigada pela atenção.
GOSTEI 0
Robson Morais
10/05/2017
denada.
GOSTEI 0