GARANTIR DESCONTO

Fórum Problemas com consulta #272239

14/03/2005

0

Estou tentando fazer um consulta em um prog meu e não estou conseguindo... É o seguinte tenho uma tabela chamada ´dbcliente´ com os seguintes campos: CODIGO,NOME,TELEFONE,PROMOCAO.
quero fazer um filtro, onde o usuario digite o nome da pessoa que ele deseje localizar ou só uma parte do nome.

Estou usando o componente Query, usando parametros e o comando em sql LIKE. veja abaixo

[b:c6f6e88a28]query1.Sql.add(´Select * from dbcliente where nome like :pnome´);[/b:c6f6e88a28]
O q tem de errado e como eu resolvo isto.... agradecido


Rodrigovollo

Rodrigovollo

Responder

Posts

14/03/2005

Faelcavalcanti

Eu não estou muito lembrado quanto ao uso do LIKE, mais tenta tipow, Where Campo Like ¬Valor, não sei se Like permite parametrizar. Tu podes usar também o starting with, que geralmente uso, e ainda com parâmetro.


Responder

Gostei + 0

14/03/2005

Jc_analista

.... where nome like ´¬TESTE¬´


Responder

Gostei + 0

14/03/2005

Fred

o comando like funciona com parametro sim!!!
tipo ... like :nome

o negocio eh na hora de passar esse parametro


tipo assim:

query.param[0].aString := ´¬´ + edit1.text + ´¬´; //o nome contem o digitado na busca

query.param[0].aString := ´¬´ + edit1.text; //o nome termina com digitado na busca

query.param[0].aString := edit1.text + ´¬´; //o nome começa com o digitado na busca


Responder

Gostei + 0

14/03/2005

Faelcavalcanti

Valeu Fred. Com essa eu não sabia. Mas nuca tive problemas com o STARTING WITH. Sobre qual dos dois é o mais rápido não sei dizer.


Responder

Gostei + 0

14/03/2005

Rodrigovollo

o comando like funciona com parametro sim!!! tipo ... like :nome o negocio eh na hora de passar esse parametro tipo assim: query.param[0].aString := ´¬´ + edit1.text + ´¬´; //o nome contem o digitado na busca query.param[0].aString := ´¬´ + edit1.text; //o nome termina com digitado na busca query.param[0].aString := edit1.text + ´¬´; //o nome começa com o digitado na busca



Não esta dando certo da uma olhada

TBCliente.Active := false;
Queryfiltro.sql.Clear;
nome := inputbox(´Digite o nome´,´nome´,´´);
queryfiltro.sql.Add (´select * from dbcliente where nome like :nnome´);
queryfiltro.parambyname(´nnome´).asstring := ´¬´ + nome + ´¬´; //o nome contem o digitado na busca
queryfiltro.Active := true;


Responder

Gostei + 0

14/03/2005

Faelcavalcanti

queryfiltro.parambyname(´nnome´).asstring := ´¬´ + nome + ´¬´;


Cara tenta assim, com [b:10467a7d3d]nnome[/b:10467a7d3d] e não [b:10467a7d3d]nome[/b:10467a7d3d], tipow:
queryfiltro.parambyname(´nnome´).asstring := ´¬´ + nnome + ´¬´;



Responder

Gostei + 0

15/03/2005

Fred

Era pra funcionar!!

tente dar um close na queryfiltro;
e como vc esta fazendo em tempo de execução talves vc tenha setar o tipo do parametro!! algo assim: Query1.ParamByName(´nnome´).DataType := ftString;

tenta ae pra ver.
Eu uso com SQLClientDataSet e funciona!!!
ou ainda tenta passar as aspas

tipow:
queryfiltro.parambyname(´nnome´).asstring := #39 + ´¬´ + nome + ´¬´ + 39;


Responder

Gostei + 0

15/03/2005

Tnaires

Olá
Pra passar o parâmetro com aspas, vc pode usar a função QuotedStr.
queryfiltro.ParamByName(´nome´).AsString := QuotedStr(´¬´ + nome + ´¬´);

Abraços


Responder

Gostei + 0

15/03/2005

Faelcavalcanti

[quote:6c7ba10e63=´RodrigoVollo´] queryfiltro.parambyname(´nnome´).asstring := ´¬´ + nome + ´¬´;


Cara tenta assim, com [b:6c7ba10e63]nnome[/b:6c7ba10e63] e não [b:6c7ba10e63]nome[/b:6c7ba10e63], tipow:
queryfiltro.parambyname(´nnome´).asstring := ´¬´ + nnome + ´¬´;
[/quote:6c7ba10e63]
:oops:
Cara que merda minha, agora é que vim ver que era um parâmetro do delphi e não no SQL, nada a ver meu. Ops! Mais a idéia do [b:6c7ba10e63]tnaires[/b:6c7ba10e63] resolve!


Responder

Gostei + 0

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

Aceitar