Array
(
)

Parâmetros em SQL - cláusula LIKE???

Rockbilly
   - 18 ago 2004

Olá pessoal,
seguinte, tenho este código:
#Código

with ADOQuery1 do
begin
SQL.Text:= ´SELECT * FROM tb_profe WHERE Nome LIKE :nome¬´;
Parameters.ParametersByName(´nome´).Value := Edit1.Text;
Open;
end;


so q está dando erro na consulta, pois (ERRO: parametro nome não encontrado) creio que não estou sabendo concatenar a Cláusla LIKE com o parâmetro, alguem poderia me dar uma luz?

Obrigado!


Nildo
   - 18 ago 2004

#Código


with ADOQuery1 do
begin
SQL.Text := ´SELECT * FROM tb_profe WHERE Nome LIKE :nome ´´¬´´´;
Parameters.ParametersByName(´nome´).Value := Edit1.Text;
Open;
end;


Use CTRL+C e CTRL+V porque o jogo de aspas é estranho na visualização, mas agora está correto.


Rockbilly
   - 18 ago 2004

nildo, obrigado por postar... mas está dando erro:

#Código

Incorrect syntax next ´¬" Process stopped


o q pode ser, tente colocar mais uma aspa simples, na esquerda e direita, mas mesmo assim continuou dando erro, pode me ajudar?


Vinicius2k
   - 18 ago 2004

Colega,

Na verdade vc tem que contenar o ´¬´ com valor do parametro e não com o parametro...
#Código

with ADOQuery1 do 
begin
SQL.Text:= ´SELECT * FROM tb_profe WHERE Nome LIKE :nome´;
Parameters.ParametersByName(´nome´).Value := Edit1.Text + ´¬´;
Open;
end;


T+


Nildo
   - 18 ago 2004

Tente assim:

SQL.Text := ´SELECT * FROM tb_profe WHERE Nome LIKE :nome [size=18:727274df49]+[/size:727274df49] ´´¬´´´;

É que eu uso o MySQL, e pode ser diferente :roll:


Otto
   - 18 ago 2004

ao invez de parametros, pq nao tentar diretp??


#Código

SQL.Text:= ´SELECT * FROM tb_profe WHERE Nome LIKE "¬´ + edit1.text + ´¬"´;



:wink:


Rockbilly
   - 18 ago 2004


Citação:
Tente assim:

SQL.Text := ´SELECT * FROM tb_profe WHERE Nome LIKE :nome [size=18:d8170bd2c1]+[/size:d8170bd2c1] ´´¬´´´;

É que eu uso o MySQL, e pode ser diferente :roll:

pow nildo, era isso, vlw mesmo!!
grato tb vinicius!


Vinicius2k
   - 18 ago 2004

Blz ! vc tem aí 3 formas de fazer e todas corretas... :wink:
Eu prefiro contatenar no valor do parametro, pq dependendo da condição eu coloco o ¬ antes, ou depois, ou antes e depois... mas é questão de escolha...
T+


Rockbilly
   - 18 ago 2004

otto, vlw o toque... particularmente preferi por parametro pq é bom aprender desta forma, aproveitando o gancho, como q arrumo este código para incluir, pois tb está dando erro:
#Código

with ADOQuery1 do 
begin
SQL.Text:= ´INSERT INTO tabela VALUES(:nome,:endereco,:bairro,:cep)´;
Parameters.ParametersByName(´nome´).Value := Edit1.Text;
Parameters.ParametersByName(´endereco´).Value := Edit2.Text;
Parameters.ParametersByName(´bairro´).Value := Edit3.Text;
Parameters.ParametersByName(´cep´).Value := Edit4.Text;
Open;
end;


alguem pode me ajudar de novo, Obrigadão pessoal!


Nildo
   - 18 ago 2004

SQL.Text:= ´INSERT INTO tabela VALUES( :nome , :endereco , :bairro , :cep )´;

separe os parametros de outros caracteres, com um espaço.
Se não funcionar, você deve setar o tipo do parametro como ftString.


Vinicius2k
   - 18 ago 2004

Se a sua tabela só tiver estes 4 campos vc pode usar direto o Values senão teria que ser ... into tabela(campo1,campo2,...) values (param1,param2,...)

No mais, é só trocar o método Open, por ExecSQL... vc só usa Open, para instruções Select... Inserts, Updates, Deletes, DDL e DCL é ExecSQL...

T+


Rockbilly
   - 18 ago 2004

Nildo e vinicius, blz? tentei suas dicas, mas me retorna o erro de:

#Código

ADOQuery1 parameter nome not found


o q poderia ser?

nildo, isso q vc falou ftstring, seria uma função a ser aplicada nos parametros? poderia me ajuda?

obrigado turma!


Rockbilly
   - 18 ago 2004

Opa, coonsegui!! Vinicius, sua dica foi show de bola!
vlw tb nildo!

obrigadao!