DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Filtro por Datas no ClientDataSet

Olá pessoal!

Esta dica é bem simples, mas para quem não esta habituado a utilizar a propriedade
Filter de DataSet pode causar alguns problemas.

O uso é bem fácil, veja o exemplo:

1
2
3
4
ClientDataSet1.Filter := 
  'DATA >= ' + FormatDateTime('dd/mm/yyyy', DateTimePicker1.DateTime) +
  'AND DATA <= ' + FormatDateTime('dd/mm/yyyy', DateTimePicker2.DateTime);
ClientDataSet1.Filtered := True;

O segredo aqui é a formatação da data, que deverá ser dd/mm/yyyy,
assim o filtro irá funcionar normalmente.

inclusive pode ser adicionados outros filtros juntamente com o filtro
da data. Para mais detalhes veja: showdelphi.com.br/filtros-de-dados-sem-o-uso-de-sql-delphi/

Outra dica importante é que a Propriedade Filter por ser utilizada em Qualquer
DataSet.

Exemplos:
ClientDataSet
FDMemTable
ZQuery
e etc

Facebook Comments Box
  • InfusTec
  • 10.262 views
  • 2 comentários
  • 18 de maio de 2016

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

2 respostas para “Filtro por Datas no ClientDataSet”

  1. Acé Neves Gonçalves disse:

    Não fuincionou o filtro por data. Aparece a seguinte mensagem;

    —————————
    Debugger Exception Notification
    —————————
    Project Master.exe raised exception class EDBClient with message ‘Type mismatch in expression.’. Process stopped. Use Step or Run to continue.
    —————————
    OK Help
    —————————

  2. Iverson Farias disse:

    1) Precisa colocar a data entre aspas (QuotedStr);
    2) É melhor usar DateToStr() para evitar problemas com idioma e formato de data;
    3) Pode ser necessário remover horários da data (usamos DateOf);

    var
    sDataIni, sDataFim: string;
    begin
    sDataIni := QuotedStr(DateToStr(DateOf(DateTimePicker1.DateTime)));

    sDataFim := QuotedStr(DateToStr(DateOf(DateTimePicker2.DateTime)));

    cds.Filter := ‘DATA >= ‘ + sDataIni + ‘ AND DATA <= ' sDataFim;
    cds.Filtered := True;
    end;

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados