Fórum Fazer pesquisa incremental na Query tem como ???? #177118
24/08/2003
0
Para fazer pesquisa incremental TABLE eu sei, no evento OnChange do Edit: digita..........
Table1.FindNearest([Edit1.Text]);
...........Quero saber se tem como fazer esta pesquisa na QUERY ???? se tem como , qual e o codigo ......
agradeço..........
Table1.FindNearest([Edit1.Text]);
...........Quero saber se tem como fazer esta pesquisa na QUERY ???? se tem como , qual e o codigo ......
agradeço..........
Tatulegal
Curtir tópico
+ 0
Responder
Posts
24/08/2003
Mmtoor
Pega essa amigo.
procedure TForm1.Edit2Change(Sender: TObject);
var a,b: String;
Begin
dmfinancas.qryClientes.SQL.Clear;
a:=´Select * From Clientes ´;
b:=´Where Nome Like:Consulta ´;
dmfinanas.qryClientes.SQL.Add(a+b);
dmfinancas.qryClientes.Params[0].AsString;
dmfinancas.qryClientes.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit1.Text+´¬´;
dmfinancas.qryClientes.Close;
dmfinancas.qryClientes.Open;
end;
MMTOOR2003
mmtoor2003@yahoo.com.br
procedure TForm1.Edit2Change(Sender: TObject);
var a,b: String;
Begin
dmfinancas.qryClientes.SQL.Clear;
a:=´Select * From Clientes ´;
b:=´Where Nome Like:Consulta ´;
dmfinanas.qryClientes.SQL.Add(a+b);
dmfinancas.qryClientes.Params[0].AsString;
dmfinancas.qryClientes.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit1.Text+´¬´;
dmfinancas.qryClientes.Close;
dmfinancas.qryClientes.Open;
end;
MMTOOR2003
mmtoor2003@yahoo.com.br
Responder
Gostei + 0
24/08/2003
Vinicius2k
Queryes não tem índices... vc eh q determina a ordem de apresentação com o ´Order by´ por isso este método não se aplica... vc pode usar o locate... eh um pouco mais lento por não ter indice mas em compesação oferece mais recursos, se vc passar o paramentro [LoPartialKey] ele irá localizar qualquer parte do campo que contenha o texto do seu edit.
ex :
1) query.Locate(´DESCRICAO´,Edit1.text,[])
2) query.Locate(´DESCRICAO´,Edit1.text,[LoPartialKey])
3)se precisar de chave composta :
query.Locate(´NOME;SENHA´,VarArrayOf([Edit1.Text,Edit2.Text)]),[])
o locate retora true ou false, então vc pode usar
if query.Locate(´NOME;SENHA´,VarArrayOf([Edit1.Text,Edit2.Text)]),[]) then
begin
....
end;
ex :
1) query.Locate(´DESCRICAO´,Edit1.text,[])
2) query.Locate(´DESCRICAO´,Edit1.text,[LoPartialKey])
3)se precisar de chave composta :
query.Locate(´NOME;SENHA´,VarArrayOf([Edit1.Text,Edit2.Text)]),[])
o locate retora true ou false, então vc pode usar
if query.Locate(´NOME;SENHA´,VarArrayOf([Edit1.Text,Edit2.Text)]),[]) then
begin
....
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)