Problema com pesquisa usando memo
22/03/2013
0
O que acontece que ao digitar fica apresendo letrinha por letrinho num intervalo de 30 segundos;
Vai aparecendo lentamente o que esta digitando.
fiz um select e coloquei o mesmo no evento onchange do Memo1.
Estou usando delphi 2007 e win7.
obrigado
"Deus abençoe"
Wilton Júnior
Posts
22/03/2013
Joel Rodrigues
22/03/2013
Bruno Leandro
usando locate, filter ?
se voce tiver usando locate muito provavelmente sera lento,
caso esta usando close/open e o campo tiver um indice correto para essa pesquisa pode nao ficar lento
talvez uma melhor solução seria utilizar o filter ou clientdataset, para nao ficar consultado o banco de dados
22/03/2013
Wilton Júnior
O que precisa ser feito é um filtro de informação no momento que o usuário tiver digitando.
Bruno Leando estou fazendo o seguinte:
with MIC010 do
begin
close;
sql.clear;
sql.add('select numjan, datcad, soluca from mic010 where datcad is not null');
if Edit4.text <> '' then
sql.add('and numjan like ' + QuotedStr('%' + Edit4.text + '%'));
if Memo1.text <> '' then
sql.add('and solici like ' + QuotedStr('%' + Memo1.text + '%'));
Open;
end;
Eu nem lembrei da existencia do código locate para te falar a verdade de tão acostumado a fazer esse tipo de codigo de pesquisa.
obrigado a todos
22/03/2013
Bruno Leandro
var
Filtro: string;
begin
with MIC010 do
begin
Filtro := '';
if (Edit4.text <> '') then
Filtro := 'and numjan like ' + QuotedStr('%' + Edit4.text + '%');
if (Memo1.text <> '') then
Filtro := 'and solici like ' + QuotedStr('%' + Memo1.text + '%');
Filtered := False;
Filter := Filtro;
Filtered := True;
end;
end;
22/03/2013
Bruno Leandro
var
Filtro: string;
begin
with MIC010 do
begin
Filtro := '';
if (Edit4.text <> '') then
Filtro := Filtro +' and numjan like ' + QuotedStr('%' + Edit4.text + '%');
if (Memo1.text <> '') then
Filtro := Filtro +' and solici like ' + QuotedStr('%' + Memo1.text + '%');
Filtered := False;
Filter := Filtro;
Filtered := True;
end;
end;
Clique aqui para fazer login e interagir na Comunidade :)