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 

Consulta dentro do edit

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


Registrado: Segunda-Feira, 10 de Novembro de 2014
Mensagens: 129

MensagemEnviada: Sex Fev 14, 2020 9:01 pm    Assunto: Consulta dentro do edit Responder com Citação

Boa noite, pessoal estou precisando de uma ajuda para fazer uma consulta dentro de um edit.

Gostaria de digitar dentro do edit uma pesquisa pelo inicio da string.

o codigo padrao é VVA0001A200, VVA0001C300 e assim por diante.

ex.: Pesquisar tudo que for VVA0001

no edit digitaria o que... VVA0001* ou ? e o select devolveria todos os codigo que tenham esse inicio

como teria que fazer no select para executar esta pesquisa.

obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
imex
Moderador
Moderador


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

MensagemEnviada: Sex Fev 14, 2020 10:12 pm    Assunto: Responder com Citação

Boa noite,

Nesse caso você pode utilizar o Like com o curinga '%'.
Utilizando parâmetro na query para evitar SQL injection a query ficaria mais ou menos dessa forma:

Código:
select * from Tabela where Campo like :Campo


E o código para passar o valor digitado no edit e acrescentar o curinga para o parâmetro:

Código:
Query1.ParamByName('Campo').AsString := Edit1.Text + '%';


Espero que ajude


Editado pela última vez por imex em Ter Out 03, 2023 3:04 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cmelocpv
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 10 de Novembro de 2014
Mensagens: 129

MensagemEnviada: Sex Fev 14, 2020 10:52 pm    Assunto: Responder com Citação

Obrigado, vou testa aqui..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
mrjorio
Novato
Novato


Registrado: Segunda-Feira, 24 de Setembro de 2012
Mensagens: 85

MensagemEnviada: Seg Mar 09, 2020 11:36 am    Assunto: Responder com Citação

Talvez tenha que colocar o Quoted antes de passar o parâmetro:

Código:
Query1.ParamByName('Campo').AsString := Quoted(Edit1.Text + '%');


Tive um problema parecido aqui utilizando o filter e resolveu assim.

FA


imex escreveu:
Boa noite,

Nesse caso você pode utilizar o Like com o curinga '%'.
Utilizando parâmetro na query para evitar SQL injection a query ficaria mais ou menos dessa forma:

Código:
select * from Tabela where Campo like :Campo


E o código para passar o valor digitado no edit e acrescentar o curinga para o parâmetro:

Código:
Query1.ParamByName('Campo').AsString := Edit1.Text + '%';


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Qua Mar 11, 2020 12:02 am    Assunto: Responder com Citação

Já eu não usaria o like %, pq entendo a pesquisa que pretende fazer.
Se usar o like vai causar lags caso o tabela possua muito registros.
A ideia passa mesmo em realizar a consulta por completo antes que o usuário digite algo no edit, está consulta deve ser previamente amarzenada em algum recurso temporário e servirá como base para quando se digita algo no edit seja realizado o filtro.

É como os contatos telefônico de sua agenda no smartphone inicialmente a lista se apresenta por completa, mais ao digitar no edit algo é filtrado deixando amosta apenas os que começa com o que foi digitado.

Este tipo de consulta trata apenas de duas lista uma completa e uma outra que foi filtrada.


Pense no assunto qualquer dúvida vai colocando ela que vou tentando explanar.


Abraços.
_________________
Tudo podemos quando tudo sabemos!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
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