like em sql

Delphi

12/08/2003

Estou com problema nessa consulta:

dm_Geral.qry_pesquisa.SQL.Clear;
a:=´Select * From Tipodoc´;
b:=´Where Nm_tpdoc like :consulta´;
c:=´Order By Nm_tpdoc´;
dm_Geral.qry_pesquisa.SQL.Add(a+b+c);
dm_Geral.qry_pesquisa.ParamByName(´consulta´).AsString := QuotedStr(Edit2.text);


Erro Parametro não existe.


Catharina

Catharina

Curtidas 0

Respostas

Vmotta

Vmotta

12/08/2003

tenta dar um espaço no final da string a,b:

exemplo:
a:=´Select * From Tipodoc ´;
b:=´Where Nm_tpdoc like :consulta ´;
c:=´Order By Nm_tpdoc´;

t+
Vitor


GOSTEI 0
Cfn2003

Cfn2003

12/08/2003

acrescente antes de passar o parametro

parameter.items[0].datatype := ftstring;
parameters[0].value := xxxxx


GOSTEI 0
Vmotta

Vmotta

12/08/2003

Outra coisa, se vc quiser selecionar todos os regsitros que comecem com o texto contido em Edit2.text vc vai precisar utilizar o caracter ¬ como coringa, equivalente ao * no dos.

exemplo:

dm_Geral.qry_pesquisa.SQL.Clear;
a:=´Select * From Tipodoc ´;
b:=´Where Nm_tpdoc like ´´´ + edit2.text + ´¬´´ ´;
c:=´Order By Nm_tpdoc´;
dm_Geral.qry_pesquisa.SQL.Add(a+b+c);


tente utilizar esse código ok?
Vitor <vmotta@eep.br>


GOSTEI 0
Catharina

Catharina

12/08/2003

Olá..
obrigada por terem respondido, o erro é no coringa, estou trabalhando em mssqlserver ele não está aceitando:

edit2.text + ´¬´ ?????????????


GOSTEI 0
Weber

Weber

12/08/2003

está dando erro porque voce não está usando aspas no like

Exemplo: Select * from clientes where cli_nome like ´¬Joao¬´.

Se voce estiver usando interbase dialeto 1 use aspas duplas ou se estiver usando interbase dialeto 3 use aspas simples.


GOSTEI 0
Vmotta

Vmotta

12/08/2003

Ola.

As aspas são fundamentais, por isso o código deve ser exatamente como o citado abaixo:

b:=´Where Nm_tpdoc like ´´´ + edit2.text + ´¬´´ ´;

após o like tem 3 aspas, as 2 primeiras para colocar uma aspa na string e a ultima que finaliza a primeira parte da string, o mesmo ocorre depois do ¬.

se preferir pode alterar essa linha para:

b:=´Where Nm_tpdoc like ´ + #39 + edit2.text + ´¬´ + 39 + ´ ´;

o caracter 39 é a aspa ...

T+
Vitor <vmotta@eep.br>


GOSTEI 0
Perin75

Perin75

12/08/2003

dm_Geral.qry_pesquisa.SQL.Clear;

dm_Geral.qry_pesquisa.SQL.add(´Select * From Tipodoc ´);
dm_Geral.qry_pesquisa.SQL.add(´Where Nm_tpdoc like :consulta´);
dm_Geral.qry_pesquisa.SQL.add(´Order By Nm_tpdoc´);
dm_Geral.qry_pesquisa.ParamByName(´consulta´).AsString := ´¬´+Edit2.text+´¬´;

tenta isto


GOSTEI 0
Catharina

Catharina

12/08/2003

Obrigada
por terem respondido e deu certo ficou assim:

a:=´Select * From Tipodoc ´;
b:=´Where nm_tpdoc like :consulta ´;
c:=´Order By Nm_tpdoc´;
dm_Geral.qry_pesquisa.SQL.Add(a+b+c);
dm_Geral.qry_pesquisa.Params.items[0].datatype := ftstring;
dm_Geral.qry_pesquisa.ParamByName(´c onsulta´).AsString := ´´+´¬´+Edit2.Text+´¬´ ;
v


GOSTEI 0
POSTAR