Fórum Para Experts em filtrar no DBGrid #210544

30/01/2004

0

Bom Dia! Estou com um probleminha, preciso filtrar nomes num DBGrid usando um Query SQL, mas esta dando pau.

O código que estou utilizando é esse:


SQL=Select*From ´clientes.db A Where A.ind_Nome Like :Nome

No Botão eu estou digitando:

if (Edit1.text=´ ´) then
Query1.ParamByind_nome(´Nome´).AsString:=´¬´
else
Query1.ParamByind_nome(´Nome´).AsString:=Edit1.text;
Query1.Open;


Alguem pode me dar uma dica pois esta muito dificil solucionar meu probleminha. Não consigo localizar os nomes de jeito nenhum.


Julio Piorino

Julio Piorino

Responder

Posts

30/01/2004

Paulo_amorim

Olá

Qual o problema em si? nao aparece registro algum?

Não entendi bem...


Responder

Gostei + 0

30/01/2004

Fabio.hc

[quote:8cf9e964aa=´Julio César Piorino´]Bom Dia! Estou com um probleminha, preciso filtrar nomes num DBGrid usando um Query SQL, mas esta dando pau.

O código que estou utilizando é esse:


SQL=Select*From ´clientes.db A Where A.ind_Nome Like :Nome

No Botão eu estou digitando:

if (Edit1.text=´ ´) then
Query1.ParamByind_nome(´Nome´).AsString:=´¬´
else
Query1.ParamByind_nome(´Nome´).AsString:=Edit1.text;
Query1.Open;


Alguem pode me dar uma dica pois esta muito dificil solucionar meu probleminha. Não consigo localizar os nomes de jeito nenhum.[/quote:8cf9e964aa]

Tente assim:

if (Edit1.text=´´)  then
   Query1.ParamByind_nome(´Nome´).AsString:=´¬´
else
   Query1.ParamByind_nome(´Nome´).AsString:=´¬´+Edit1.text+´¬´;
Query1.Open;


Ou

if (Edit1.text=´´)  then
   Query1.ParamByind_nome(´Nome´).AsString:=´¬´
else
   Query1.ParamByind_nome(´Nome´).AsString:=Edit1.text+´¬´;
Query1.Open;



Responder

Gostei + 0

30/01/2004

Vinicius2k

Júlio,
Que propriedade é essa ParamByind_nome ?

Query1.ParamByind_nome(´Nome´).AsString:=´¬´ 


vc estah usando o LIKE, ou seja vc estah pesquisando por aproximação então 1 ou 2 [color=red:6cf548245c]¬[/color:6cf548245c] é regra...

exemplos :
query1.ParamByName(´nome´).AsString:= edit1.Text+´¬´;

filtra pelos nomes iniciados pelo que está no text do edit não importando como termina... se no text estiver [color=red:6cf548245c]JO[/color:6cf548245c] ele vai trazer JOAO, JOSE, JORGE, etc...

query1.ParamByName(´nome´).AsString:= ´¬´+edit1.Text;

filtra pelos nomes terminados pelo que está no text do edit não importando como começa... se no text estiver [color=red:6cf548245c]JO[/color:6cf548245c] ele vai trazer QUEIJO, BEIJO, etc...

query1.ParamByName(´nome´).AsString:= ´¬´+edit1.Text+´¬´;

filtra pelos nomes que contém o text do edit não importando como termina ou começa... se no text estiver [color=red:6cf548245c]JO[/color:6cf548245c] ele vai trazer JOAO, JOSE, MAJOR, QUEIJO, BEIJO, etc...


só uma dica : o título do seu tópico com o ´Experts´ desencoraja a visitação... além disso desmerece as respostas dos colegas para uma questão relativamente simples...

espero ter ajudado...


Responder

Gostei + 0

31/01/2004

Tarcisiojr

Júlio, Que propriedade é essa ParamByind_nome ?
Query1.ParamByind_nome(´Nome´).AsString:=´¬´ 
vc estah usando o LIKE, ou seja vc estah pesquisando por aproximação então 1 ou 2 [color=red:77b79eec76]¬[/color:77b79eec76] é regra... exemplos :
query1.ParamByName(´nome´).AsString:= edit1.Text+´¬´;
filtra pelos nomes iniciados pelo que está no text do edit não importando como termina... se no text estiver [color=red:77b79eec76]JO[/color:77b79eec76] ele vai trazer JOAO, JOSE, JORGE, etc...
query1.ParamByName(´nome´).AsString:= ´¬´+edit1.Text;
filtra pelos nomes terminados pelo que está no text do edit não importando como começa... se no text estiver [color=red:77b79eec76]JO[/color:77b79eec76] ele vai trazer QUEIJO, BEIJO, etc...
query1.ParamByName(´nome´).AsString:= ´¬´+edit1.Text+´¬´;
filtra pelos nomes que contém o text do edit não importando como termina ou começa... se no text estiver [color=red:77b79eec76]JO[/color:77b79eec76] ele vai trazer JOAO, JOSE, MAJOR, QUEIJO, BEIJO, etc... só uma dica : o título do seu tópico com o ´Experts´ desencoraja a visitação... além disso desmerece as respostas dos colegas para uma questão relativamente simples... espero ter ajudado...


Eu prefiro programar com QUERY assim:

em vez de usar parambyname eh melhor escrever a sql tudo de uma vez eh muito mais pratico e rapido.

tipo exemplo:

With Query1 do begin
Close;
Sql.Clear; //Limpa o conteudo da sql
Sql.Add(´ Select * From clientes ´); // seleciona a tabela
Sql.Add(´ Where ind_Nome Like ´¬´+Edit1.text+´¬´´); // filtra o campo ind_Nome tanto faz o edit1 ta preenchido ou nao ele funfa normal.
Sql.Add(´ Order By ind_Nome ´); //organiza por ordem do campo ind_Nome
Open; //abre query
First; //posiciona o cursor no 1o registro
end;

By Tarcisio Jr.

Ps. Espero ter ajudado amigos....


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar