Como fazer um locate por campo do tipo Data?
Oi pessoal, certa vez entrei uma dificuldade em fazer funcionar um locate,
por data.
Estava utilizando um ClientDataSet e um DateTimePicker,
como o código abaixo:
1
2
3
4
5
| procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Locate('DATA',
DateTimePicker1.DateTime, []);
end; |
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Locate('DATA',
DateTimePicker1.DateTime, []);
end;
No entanto o locate nunca encontrava o registro. Então fiz uma pequena
alteração e o locate começou a funcionar.
Abaixo segue o código:
1
2
3
4
5
| procedure TForm1.Button2Click(Sender: TObject);
begin
ClientDataSet1.Locate('DATA',
StrToDate(FormatDateTime('dd/mm/yyyy', DateTimePicker1.DateTime)), []);
end; |
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientDataSet1.Locate('DATA',
StrToDate(FormatDateTime('dd/mm/yyyy', DateTimePicker1.DateTime)), []);
end;
Espero ter ajudado!
Dúvidas ou sugestões, deixe nos comentários do post.
-
InfusTec
-
5.866 views
- 1 comentários
- 6 de novembro de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Por lapso não referia no comentário anterior que setando ambos, obrigatóriamente
FormatSettings.DateSeparator:=#45; //**
FormatSettings.ShortDateFormat:=’yyyy-MM-dd’; //**
Não importa que definição esteja na máquina do cliente que este passa a ser o formato considerado em todo o seu programa e deixa de ter no arranque e sempre que focar um campo TDate ou TDateTime a exception EConvertError … is not a valid date!