Ajuda com Pesquisa de registro com SQL

05/12/2003

1

Montei um grid de um tabela que quando no titulo ordeno com um clausula ORDER BY, e grava o nome do campo em uma varialvel global.

E no evento onchange de um edit estou com outra funcao fazendo um filtro com like de qualquer uma das colunas do grid, tudo funciona mais quando ordeno o campo data ele não me filtra o a data que estou digitando, uso firebird 1.5, sera que estou fazendo alguma coisa errada..

Desde ja agradeço a todos...


Responder

Posts

05/12/2003

Turbo Drive

Geralmente as filtragens por data não podedm ser feitas usando like, e sim atribuindo parâmetros.

EX:
QTudo.sql.Add(´Select SUM(valor), SUM(valorpago) from extratoconta where (dtini >=:inicio and dtfim <=:final and situacao <> ´´Quitadas´´)´)
QTudo.ParamByName(´inicio´).ASDateTime := strtodate(maskedit1.text);
QTudo.ParamByName(´fim´).ASDateTime := strtodate(maskedit2.text);
QTudo.Open;

Qualquer coisa post o seu código aqui parta analisarmos.


Responder

05/12/2003

J@ck

with dm.qryIMPORTA do
Begin
Close;
SelectSQL.Clear;
SelectSQL.Add(´select * from importa´);
SelectSQL.Add(´where ´+sSISCAMPOPESQ+´ like ´´´+edtPESQUISAR.Text+´¬´´´);
Open;
end;


O codigo que estou usando e esse onde sSISCAMPOPESQ e uma variavel global que quando clico no titulo do dbgrid que passo o nome do campo da coluna para ela , e edtPESQUISAR e um unico edit que pesquiso todos os campos do dbgrid...


Responder

05/12/2003

Turbo Drive

Tente isto:

with dm.qryIMPORTA do
Begin
Close;
SelectSQL.Clear;
SelectSQL.Add(´select * from importa´);
try
strtodate(edtPESQUISAR.Text);
SelectSQL.Add(´where ´+sSISCAMPOPESQ+´ >=:dia ´);
SelectSQL.Parambyname(´dia´).asDatetime := strtodate( edtPESQUISAR.Text);
except
SelectSQL.Add(´where ´+sSISCAMPOPESQ+´ like ´´´+edtPESQUISAR.Text+´¬´´´);
Open;
end;


Se for uma data válida ele pesquisa por passagem de parâmetros.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira