DBGrid com filtro de campos de tipos diferentes

Delphi

17/07/2009

Como filtrar numa DBGrid, comparando campos do Banco de Dados do tipo string e do tipo date?

Obrigado.


Cps.art

Cps.art

Curtidas 0

Respostas

Danielrsanches

Danielrsanches

17/07/2009

tente explicar melhor o que pretende .. numa instrução SQL, se não me engano, vc pode comparar esses 2 campos diretamente, pois a data é tratada como um string aaaammdd ...

´select * from TABELA where cDATA = cSTRING´

se não me engano ... testa aí ... qq coisa post mais detalhes ..

abraços !!!


GOSTEI 0
Cps.art

Cps.art

17/07/2009

Utilizo Banco de Dados do DBase.

Estou utilizando o seguinte:

[b:a3ff99a8d6]DataSet1.Filter := ´DESP = ´ + QuotedStr(EditDesp.Text) + ´ and CAT = ´ + QuotedStr(EditCat.Text);[/b:a3ff99a8d6]

Nesse filtro os campos ´[b:a3ff99a8d6]DESP[/b:a3ff99a8d6]´ e ´[b:a3ff99a8d6]CAT[/b:a3ff99a8d6]´ são [u:a3ff99a8d6]strings[/u:a3ff99a8d6], e até aí o filtro está funcionando, porem eu teria que incluir nesse filtro mais um campo que é tipo ´[u:a3ff99a8d6]Date[/u:a3ff99a8d6]´, e aí é que dá o problema.

Seguindo a linha de raciocínio do filtro acima, inclui o campo ´[b:a3ff99a8d6]DATA[/b:a3ff99a8d6]´ do Banco de Dados, ficando assim:

[b:a3ff99a8d6]DataSet1.Filter := ´DESP = ´ + QuotedStr(EditDesp.Text) + ´ and CAT = ´ + QuotedStr(EditCat.Text) + ´and DATA = ´ + QuotedStr(EditData.Text);[/b:a3ff99a8d6]

Deu erro por se tratar de campos de tipos diferentes.

Tentei converter o campo DATA para string tipo [u:a3ff99a8d6]DateToStr(DATA)[/u:a3ff99a8d6] mas tambem não deu certo.

Não consigo achar uma forma disso funcionar.

Agradeço as dicas.


GOSTEI 0
Danielrsanches

Danielrsanches

17/07/2009

usando o Filter assim, acho que não dá ... pelo menos desconheço, mas fica aberto o tópico aí pra se alguém souber !!


abraços !!!


GOSTEI 0
Martins

Martins

17/07/2009

usando o Filter assim, acho que não dá ... pelo menos desconheço, mas fica aberto o tópico aí pra se alguém souber !! abraços !!!


Não uso mais DBase desde o Clipper, mas vc poderia tentar assim. Apenas para testar.

DataSet1.Filter := ´DESP = ´ + QuotedStr(EditDesp.Text) + ´ and CAT = ´ + QuotedStr(EditCat.Text) + ´ and DATA = ´ + QuotedStr(DateToStr(Date));

Boa sorte!


GOSTEI 0
POSTAR