ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Pesquisa Nome com SQL

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
CENTURYINF
Membro Junior
Membro Junior


Registrado: Sexta-Feira, 19 de Fevereiro de 2010
Mensagens: 364

MensagemEnviada: Sex Set 02, 2011 10:19 am    Assunto: Pesquisa Nome com SQL Responder com Citação

Moderadores do Active-Delphi escreveu:

Tópico editado por: johnny-walker
Motivo: Regras do fórum
Título Original: PESQUISA NOME COM SQL


Ola amigos

Tenho uma tabela em SQL ex: nome,endereco,bairro..etc

tenho um edit no form, e preciso que quando for digitando o nome
va pesquisando e me mostrando na tabela

semelhante ao comando findnearest com tabela paradox
no paradox uso: tabela.findnearest([edit1.text]);

desculpem estou migrando um programa para sql

Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
felipehts
Novato
Novato


Registrado: Quarta-Feira, 20 de Julho de 2011
Mensagens: 71

MensagemEnviada: Sex Set 02, 2011 10:35 am    Assunto: Re: PESQUISA NOME COM SQL Responder com Citação

CENTURYINF escreveu:
Ola amigos

Tenho uma tabela em SQL ex: nome,endereco,bairro..etc

tenho um edit no form, e preciso que quando for digitando o nome
va pesquisando e me mostrando na tabela

semelhante ao comando findnearest com tabela paradox
no paradox uso: tabela.findnearest([edit1.text]);

desculpem estou migrando um programa para sql

Abraços


o sql fica +/- assim:


Código:

 SELECT campo_tabela FROM tabela WHERE campo_tabela LIKE '%'+edit1.text+'%'


sendo assim 'jogue' o resultado da pesquisa acima na sua tabela, essa consulta deve ser feita cada tecla digitada, ou seja no evento keypress/keydown

abrasss
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Set 02, 2011 10:41 am    Assunto: Responder com Citação

Confira um exemplo no tópico que segue:
http://www.activedelphi.com.br/forum/viewtopic.php?t=67670&highlight=

Dos exemplos do tópico que citei acho melhor o que utiliza parâmetro.

obs: se o componente não for o ADOQuery remova o Parameters, ficando somente ParamByName

Espero que ajude.


Editado pela última vez por imex em Seg Fev 26, 2024 11:54 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
russo_bradock
Membro Junior
Membro Junior


Registrado: Quinta-Feira, 14 de Dezembro de 2006
Mensagens: 335

MensagemEnviada: Sáb Set 03, 2011 10:00 pm    Assunto: Responder com Citação

Bom, a ideia de buscar a cada letra digitada é ruim, dependendo da quantidade de registros que voce tiver em seu banco. Imagine ai um cadastro de clientes com mais de 100 mil registros, coloca ai um acesso online e bum, desastre a vista. Recomendo pra ti um botão para o usuário determinar quando fará a busca ou ainda no evento onExit do seu edit.

Quanto ao Comando, voce pode usar os esquemas citados pelos irmãos acima que estarão corretos para ti.
Abraço.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
felipehts
Novato
Novato


Registrado: Quarta-Feira, 20 de Julho de 2011
Mensagens: 71

MensagemEnviada: Dom Set 04, 2011 10:25 am    Assunto: Responder com Citação

russo_bradock escreveu:
Bom, a ideia de buscar a cada letra digitada é ruim, dependendo da quantidade de registros que voce tiver em seu banco. Imagine ai um cadastro de clientes com mais de 100 mil registros, coloca ai um acesso online e bum, desastre a vista. Recomendo pra ti um botão para o usuário determinar quando fará a busca ou ainda no evento onExit do seu edit.

Quanto ao Comando, voce pode usar os esquemas citados pelos irmãos acima que estarão corretos para ti.
Abraço.


Claro que não vai buscar TODOS os registros a cada consulta, seria "loucura" rs, para isso existe 'limitador de consulta', no caso do Firebird bsta colocar no final da sql o número que você que de retorno da consulta, assim 'ROWS 5', pronto a cada consulta só irá retornar as 5 primeiras linhas referente ao que foi digitado......
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
russo_bradock
Membro Junior
Membro Junior


Registrado: Quinta-Feira, 14 de Dezembro de 2006
Mensagens: 335

MensagemEnviada: Dom Set 04, 2011 10:48 am    Assunto: Responder com Citação

hehe, não vi o termo loucura no meu post mas tudo bem.
Mesmo com o limitador irmão, fica estranho de se fazer. Imagina tentando buscar por nome fazendo um limite de 10 linhas de retorno, ai voce vai e digita MARIA, vai ter um monte no banco né, sendo necessário para trazer a MARIA que você quer ir digitando o restante do nome dela, tipo MARIA JOSE DA SILVA. Sendo assim, somente com esse nome, se usar a busca no onKeyPress seria realizado no banco 20 consultas que no caso é a quantidade de caracteres do nome da MARIA.

felipehts, se deu a entender que tive a intenção de desrespeitar sua opnião anteriormente peço desculpas, não tive essa intenção.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
felipehts
Novato
Novato


Registrado: Quarta-Feira, 20 de Julho de 2011
Mensagens: 71

MensagemEnviada: Dom Set 04, 2011 11:49 am    Assunto: Responder com Citação

russo_bradock escreveu:
hehe, não vi o termo loucura no meu post mas tudo bem.
Mesmo com o limitador irmão, fica estranho de se fazer. Imagina tentando buscar por nome fazendo um limite de 10 linhas de retorno, ai voce vai e digita MARIA, vai ter um monte no banco né, sendo necessário para trazer a MARIA que você quer ir digitando o restante do nome dela, tipo MARIA JOSE DA SILVA. Sendo assim, somente com esse nome, se usar a busca no onKeyPress seria realizado no banco 20 consultas que no caso é a quantidade de caracteres do nome da MARIA.

felipehts, se deu a entender que tive a intenção de desrespeitar sua opnião anteriormente peço desculpas, não tive essa intenção.


não parceiro você entendeu errado, quando disse 'loucura', foi imaginando tal situação no meu aplicativo por exemplo..... você não me desrespeitou não, foi a sua opinião, nada mais.... tranquilo ..

Tenho um sistema aqui de nota fiscal eletrônica, e ele faz exatamente isso...busca cliente, produto, tranpostadora...... posso ficar digitando sem parar que não da nenhuma lentidão, porque a consulta retorna apenas 5 linhas, e a cada consulta libera a 'query', bom no programa aqui ficou tranquilo...... mas depende de cada aplicação e seu uso...etc.....
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Dom Set 04, 2011 12:53 pm    Assunto: Responder com Citação

Também não gosto de utilizar no onkeypress para pesquisa, prefiro que quando o usuário terminar de digitar ele mesmo pressione o enter e inicie a pesquisa, isto evita que quando há muita concorrência haja pesquisas desnecessáiras ao banco sem o usuário ter terminado de digitar o que quer.
Também limito o nnúmero de caracteres mínimos para habilitar o botão de pesquisa, neste caso utilizo 3 caracteres.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Seg Set 05, 2011 12:00 pm    Assunto: Responder com Citação

johnny-walker escreveu:
Também não gosto de utilizar no onkeypress para pesquisa, prefiro que quando o usuário terminar de digitar ele mesmo pressione o enter e inicie a pesquisa, isto evita que quando há muita concorrência haja pesquisas desnecessáiras ao banco sem o usuário ter terminado de digitar o que quer.
Também limito o nnúmero de caracteres mínimos para habilitar o botão de pesquisa, neste caso utilizo 3 caracteres.

bye


concordo. aqui meu cadastro é de entidades (clientes, fornecedores, transport, funcionarios....) imagina o tamanho do cadastro

e so faco a pesquisa qdo o usuario tecla enter. so nao limitei o numero de caracteres pq todos ja estao acostumados a digitar pelo menos o primeiro nome.

a pesquisa demora um pouco mais (mas é questao de segundos), qdo uso por exemplo LIKE "%MARIA%", pq assim nao usa indice
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB