Comando Like
Como utilizo o comando like para ele não fazer distinção de letras maiusculas e minusculas,...ex digito Edson, e ele localiza edson, EDSON, ou outras formas ...
Arc
Curtidas 0
Respostas
Beppe
08/10/2003
Localiza onde? Se você quer apenas comparar, SameText faz isso.
Ataliba
Ataliba
GOSTEI 0
Anorex
08/10/2003
no ib uso:
UPPER(CAMPO) LIKE UPPER(TEXTO_PARA_PESQUISA)
UPPER(CAMPO) LIKE UPPER(TEXTO_PARA_PESQUISA)
GOSTEI 0
Arc
08/10/2003
Estou fazendo a busca em um campo memo da minha tabela, ele vai de registro a registro em busca dessa palavra, ...., tbem não estou conseguindo fazer com que ele busque um numero indeterminado de palavras
GOSTEI 0
Arc
08/10/2003
não estou conseguindo colocar o UPPER
GOSTEI 0
Arc
08/10/2003
Fonte:
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where A2 LIKE :Consulta´);
query1.sql.add(´order by A1´);
query1.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit1.Text+´¬´;
query1.open;
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where A2 LIKE :Consulta´);
query1.sql.add(´order by A1´);
query1.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit1.Text+´¬´;
query1.open;
GOSTEI 0
Luineumann
08/10/2003
experimente
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where Upper(A2) LIKE Upper(:Consulta)´);
query1.sql.add(´order by A1´);
query1.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit1.Text+´¬´;
query1.open;
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where Upper(A2) LIKE Upper(:Consulta)´);
query1.sql.add(´order by A1´);
query1.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit1.Text+´¬´;
query1.open;
GOSTEI 0
Arc
08/10/2003
Ele exibe a seguinte mensagem se usar o upper conforme citado acima:
Type mismatch in expression
Type mismatch in expression
GOSTEI 0
Anorex
08/10/2003
tente
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where Upper(A2) LIKE Upper(´ + ´´´´ + Edit1.Text + ´´´´ +´)´);
query1.sql.add(´order by A1´);
query1.open;
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where Upper(A2) LIKE Upper(´ + ´´´´ + Edit1.Text + ´´´´ +´)´);
query1.sql.add(´order by A1´);
query1.open;
GOSTEI 0
Arc
08/10/2003
Meu amigo, o erro continua .....será que o erro acontece por o campo A2 ser do tipo MEMO ?????
GOSTEI 0
Anorex
08/10/2003
É sim por causa do campo blob...
Eu ainda não sei como fazer esta pesquisa, pois sem o UPPER funciona blz...
Vou tentar descobrir, qualquer novidade te aviso...
Eu ainda não sei como fazer esta pesquisa, pois sem o UPPER funciona blz...
Vou tentar descobrir, qualquer novidade te aviso...
GOSTEI 0
Arc
08/10/2003
Caro Anorex e em relação a procurar por mais de um termo, vc tem alguma sugestão ?????
O Usuário poderá digitar varias palavras no edit
O Usuário poderá digitar varias palavras no edit
GOSTEI 0
Arc
08/10/2003
hehehe, isso ta dificil, não acho nada na net
GOSTEI 0
Arc
08/10/2003
:cry:
GOSTEI 0
Ilanocf
08/10/2003
Se não der certo, tente este:
With Query1 Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM Teste´);
SQL.Add(´WHERE CampoDaTablea LIKE:P1´);
SQL.Add(´ORDER BY A1´);
ParamByName(´P1´).Valu:=Upper(Edit1.Text);
Open;
End;
With Query1 Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM Teste´);
SQL.Add(´WHERE CampoDaTablea LIKE:P1´);
SQL.Add(´ORDER BY A1´);
ParamByName(´P1´).Valu:=Upper(Edit1.Text);
Open;
End;
GOSTEI 0
Arc
08/10/2003
Eu não consigo usar o upper, .....
GOSTEI 0
Arc
08/10/2003
Complementei meu fonte com umas linhas que achei no forum
s:= Edit1.Text;
for i:= 1 to length(s) do
if s[i] = #32 then //32 é o mesmo que ´ ´ (espaço)
s[i]:= ´¬´;
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where A2 LIKE :Consulta´);
query1.sql.add(´order by A1´);
query1.ParamByName(´Consulta´).AsString:=´´+´¬´+(s)+´¬´;
query1.open;
ele busca mais de uma palavra , mas somente na ordem em que foi digitado, ja é um gde passo heheheheh
s:= Edit1.Text;
for i:= 1 to length(s) do
if s[i] = #32 then //32 é o mesmo que ´ ´ (espaço)
s[i]:= ´¬´;
query1.close;
query1.sql.clear;
query1.sql.add(´select * from teste ´);
query1.sql.add(´Where A2 LIKE :Consulta´);
query1.sql.add(´order by A1´);
query1.ParamByName(´Consulta´).AsString:=´´+´¬´+(s)+´¬´;
query1.open;
ele busca mais de uma palavra , mas somente na ordem em que foi digitado, ja é um gde passo heheheheh
GOSTEI 0
Arc
08/10/2003
Tem como eu fazer uma busca pela palavra exata, se escrevi hoje, ele busca por hoje ?????
GOSTEI 0