Ajuda com Select

Delphi

13/02/2003

Gente eu tenho um programa de cadastro de cliente, uso ADO e o banco e acess.

Coloquei uma Adoquery1
coloquei a sua propriedade a seguinte no objecto inspector.

connection = datamodule1.adoconnection1 <-- este e o nome de minha conecção que esta em um datamodule1.

Datasource = datasouce1 <-- este e o nome de meu datasource1 que esta no meu form.

Depois coloquei um edit1.text e um button

no evento click do butom coloquei o seguinte..

ADOQuery1.active := false;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(´select * from Cadclientes where Nome = ´´ + edit1.Text + ´´´);
ADOQuery1.active:= true;

:shock:


Uoquisala

Uoquisala

Curtidas 0

Respostas

Mecq_clayton

Mecq_clayton

13/02/2003

Well vc poderia explicar melhor o seu problema, para que possamos te ajudar.


GOSTEI 0
Uoquisala

Uoquisala

13/02/2003

E que clico no botao mais nada acontece não da erro mais tb não faz a busca.


Well vc poderia explicar melhor o seu problema, para que possamos te ajudar.



GOSTEI 0
Anonymous

Anonymous

13/02/2003

Coloque assim:

ADOQuery1.Close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add(´select * from Cadclientes where Nome = ´+QuotedStr(edit1.Text+´¬´ ) );
ADOQuery1.Open;

O que parece é que seu cadastro deve ter algo como ´JOSE DA SILVA ´: 20 posições no registro mas somente 13 preenchidas.
Se você digitar apenas ´JOSE DA SILVA´ o mecanismo de busca não vai encontrar, pois da forma que você havia colocado ele só faria uma busca exata. Da forma como eu coloquei - acrescentando o ´¬´ - o mecanismo vai procurar por todos os nomes que comecem com ´JOSE DA SILVA´.
Por exemplo:
´JOSE DA SILVA ´
´JOSE DA SILVA JR ´
´JOSE DA SILVA SOUZA ´, etc.


GOSTEI 0
Mecq_clayton

Mecq_clayton

13/02/2003

Well vamos conversar!!!
1. Digamos que vc tenha na tabela os seginte nomes cadastrados.

Clayton
José
Carlos

E vc quer puxar o nome do cara a partir do conteudo de um edit vc deve alterar a linha abaixo:

ADOQuery1.sql.add(´select * from Cadclientes where Nome = ´´ + edit1.Text + ´´´);

por:

ADOQuery1.sql.add(´select * from Cadclientes where Nome = ´´ + Trim(edit1.Text) + ´´´);

Agora se vc quiser buscar tudo o que comece com a letra C por exemplo use a lina abaixo.

ADOQuery1.sql.add(´select * from Cadclientes where Nome Like ´´ + Trim(edit1.Text) + ´¬´´);

Seria legar esse comando com o uso do like ser colocado no change do edit, dependendo do que vc quer fazer.
Outra coisa vc deve lembrar que o usuário deve digitar as letras do jeito que está no banco se o cara cadastrar o nome Clayton desta forma e buscar o nome digitando CLAYTON não vai trazer nada viu.


Qualquer coisa posta algo no forúm.


GOSTEI 0
Jabanildo

Jabanildo

13/02/2003

ai galera, eu perdi 15 dias, com isso, a soluçao é bem simples


vc ta colocando tudo junto, faça assim

ADOQuery1.sql.add(´select * from Cadclientes´);
ADOQuery1.sql.add(´where Nome =´+ edit1.Text+´;´);

senao a sql compila tudo numa linha só

select * from Cadclientes where Nome = fulanodetal

Boa Sorte.


GOSTEI 0
Mecq_clayton

Mecq_clayton

13/02/2003

Well galera duas perguntas uma pro EMERSON:
Cara esse comando que vc passou funciona sem o LIKE

JaBanildo: Vc estava tendo problema em copilar um comando SQL em uma linha só? E a sua concatenação para o Edit funciona desta forma?


GOSTEI 0
Anonymous

Anonymous

13/02/2003

Para [quote=´mecq_clayton´]

Não, não funciona sem o LIKE. Vacilei e esqueci de trocar o operador


GOSTEI 0
POSTAR