Duvida aopesquisar usando Filter em ADOQuery
Olá pessoal. Estou com uma dúvida em relação à propriedade Filter do ADOQuery. Eu preciso filtrar o campo nome do AdoQuery de acordo com o nome que o usuário digitar. Só que eu preciso que sejam mostrados todos os nomes que contenham em qualquer parte a palavra digitada pelo usuário, ou seja, pesquisar se a palavra existe no nome, no sobrenome,etc. Eu pesquisei em alguns livros e vi o seguinte exemplo:
nome = ´M*´.
Teoricamente o exemplo acima deveria mostrar todos os nome que comecem com a letra ´M´. Mas isso não resolve o meu problema. Eu preciso que a procura seja feita em qualquer parte do nome. Mas mesmo usando o exemplo acima, deu erro quando coloquei a propriedade Filtered como True. Desculpem se já existe resposta para minha dúvida no fórum, mas está dando erro quando tento procurar por qualquer mensagem anterior no fórum. Acho que a pesquisa está com problemas. Será que alguém pode me ajudar com a dúvida acima?
Desde já agradeço.
Cristiano.
nome = ´M*´.
Teoricamente o exemplo acima deveria mostrar todos os nome que comecem com a letra ´M´. Mas isso não resolve o meu problema. Eu preciso que a procura seja feita em qualquer parte do nome. Mas mesmo usando o exemplo acima, deu erro quando coloquei a propriedade Filtered como True. Desculpem se já existe resposta para minha dúvida no fórum, mas está dando erro quando tento procurar por qualquer mensagem anterior no fórum. Acho que a pesquisa está com problemas. Será que alguém pode me ajudar com a dúvida acima?
Desde já agradeço.
Cristiano.
Cristiano D.
Curtidas 0
Respostas
Cristiano D.
15/12/2004
Desculpem. Esqueci de dizer que estou usando Delphi 5 e como banco de dados o Access 2000.
GOSTEI 0
Thomaz_prg
15/12/2004
Pq não usar comando SQL??
Só não lembro se é * ou ¬.
Com filter vc pode tentar:
nome = ´*M*´
With ADOQuery do begin close; SQL.Clear; SQL.Add(´Select * from tabela where nome like :m´); Parameters.ParamByName(´m´).Value := ´*M*´; open end;
Só não lembro se é * ou ¬.
Com filter vc pode tentar:
nome = ´*M*´
GOSTEI 0
Cristiano D.
15/12/2004
Eu também prefiro usar sql. Entretanto o meu cliente não tem uma computador muito potente. E toda vez que eu abro a query para uma pesquisa, o programa está demorando muito. Depois que a query já está aberta, a velocidade do programa está satisfatória. O problema é ao abrir a query. Então, o que eu estou tentando verificar é se eu abrir a query ao carregar o programa e aplicar um filtro com ela já aberta, quero ver se o desempenho melhora um pouco. Bom, realmente não sei se isso vai ajudar na velocidade do programa, por isso estou querendo testar dessa forma.
Como eu disse acima, quando eu uso a máscara ´*´ está dando erro.
Eu tentei da seguinte forma:
Clientes.Filter := ´nome = ´ + QuotedStr(nome);
Dessa maneira funciona. Mas quando eu insiro a máscara ´*´, dá uma mensagem de erro.
Como eu disse acima, quando eu uso a máscara ´*´ está dando erro.
Eu tentei da seguinte forma:
Clientes.Filter := ´nome = ´ + QuotedStr(nome);
Dessa maneira funciona. Mas quando eu insiro a máscara ´*´, dá uma mensagem de erro.
GOSTEI 0