Fórum Dúvida SQL #365895

06/11/2008

0

Boa noite pessoal...

Tow com uma dúvida em um sql....é o seguinte....eu quero deixar 4 campos para pesquisa.....

Nome, RG, CPF e Bairro....

queria que quando o usuário digitasse uma letra no campo NOME, ele fizesse a consulta e trouxesse todos quem começam com aquela letra...e se ele tbm informar um número d cpf...aew tbm pesquisar pelo cpf...mas...acontece o seguinte...

se eu informar um somente um número de CPF ele continua trazendo todos os registros....ele só muda a consulta se eu informar tbm um nome ou um bairro..

Ele não tah ignorando os campo que estão em branco....eu passo para o sql os 4 campos para pesquisa....se algum estiver em branco ele traz todo mundo....

alguém tem alguma idéia??


Tow usando os DataSource + ClientDataSet + DataSetProvider + SQLQuery.....


Vlw


Wdrocha

Wdrocha

Responder

Posts

06/11/2008

Luiz Henrique

Blz, WDRocha

Talvez nao seja exatamente tua metodologia, mas fala sobre query dinamica

http://singularsistemas.com.br/blog/2008/05/queries-dinamicas-no-servidor-datasnap/


Responder

Gostei + 0

06/11/2008

Prmcibor

Se sua SQL está usando

where cpf =´´ or nome like ´¬¬´ ele vai voltar todos mesmo, vc teria que usar o and e colocar um like no cpf tb. ficaria assim:


selecr * from table
where cpf like ´¬cpf¬´ and nome like ´¬¬´

aí se vc preencher apenas um ele traz apenas o que vc quer....

só preste atenção, que quando mais likes voce colocar em sua query mais pesada vai ficando.

Abraços,


Responder

Gostei + 0

07/11/2008

Wdrocha

Luiz Henrique mt obrigado pela dica.....não era bem o q eu queria....mas agradeço a ajuda....


Prmcibor.....mt obrigado tbm...funcionou perfeitamente...

só um dúvida...vc diz q qto mais likes....mais pesada fica a consulta....eu usei em quatro campos...

será q qdo o banco tiver com inúmeros registros a consulta poderá demorar mais do q esperado???


Vlw


Responder

Gostei + 0

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

Aceitar