DBGrid com filtro de campos de tipos diferentes
Como filtrar numa DBGrid, comparando campos do Banco de Dados do tipo string e do tipo date?
Obrigado.
Obrigado.
Cps.art
Curtidas 0
Respostas
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 !!!
´select * from TABELA where cDATA = cSTRING´
se não me engano ... testa aí ... qq coisa post mais detalhes ..
abraços !!!
GOSTEI 0
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.
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
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 !!!
abraços !!!
GOSTEI 0
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