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 

Duvidas sobre pesquisas
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 10:01 am    Assunto: Duvidas sobre pesquisas Responder com Citação

Olá amigos gostaria que me ajudasse é seguinte eu fiz um cadastro de clientes num aplicativo que estou desenvolvendo e fiz um campo que pesquisa por nome ou rg da pessoa. Fiz e esta funcionando normal,só que quando eu vou pesquisar o nome ele só me mostra no resultado o nome exato que digitei na pesquisa, só que eu quero ele faz uma relação dos nomes existente com a pesquisa por exemplo, quando eu digitar uma parte do nome tipo "André" quero me mostre todos os Andrés existentes na tabela. Só que não estou conseguindo fazer isso eu estou usando banco de dados Firebird 2.5.
Mas uma duvida eu estou tentando fazer e também não estou conseguindo é assim quando eu vou apertar o botão cancelar depois de pesquisar que abre a tabela de todos os dados existente no meu banco de dados, só que estou colocando o comando não esta dando certo ele não abre o dados da tabela como eu faço para resolver isso?

Obrigado por já me ajudarem.
_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
faccruz
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Julho de 2010
Mensagens: 1563

MensagemEnviada: Sex Out 14, 2011 10:06 am    Assunto: Responder com Citação

Na clausula WHERE da SQL coloque LIKE '%André%'
_________________
Facc System - Sistemas para Computador
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 10:10 am    Assunto: Responder com Citação

Citação:
Na clausula WHERE da SQL coloque LIKE '%André%'


Entendi. Só que quero quando eu digitar o nome da pessoa eu coloquei esse nome só um exemplo.
_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
faccruz
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Julho de 2010
Mensagens: 1563

MensagemEnviada: Sex Out 14, 2011 10:13 am    Assunto: Responder com Citação

Mas daí vc utiliza a lógica


vai ficar semelhante a isso

Select * from <Sua> where Nome Like ' + UpperCase('%' + edtNome.Text + '%')

Não sei se vai funcionar, pois fiz "de cabeça"
_________________
Facc System - Sistemas para Computador
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 10:19 am    Assunto: Responder com Citação

Blz vou fazer isso como base que você me falou! daí eu vejo se deu certo daí eu dou um toque para você. Mas valeu já por me ajudar.
_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 8:36 pm    Assunto: Responder com Citação

Citação:
Mas daí vc utiliza a lógica


vai ficar semelhante a isso

Select * from <Sua> where Nome Like ' + UpperCase('%' + edtNome.Text + '%')

Não sei se vai funcionar, pois fiz "de cabeça"


Olha vou passar o código fonte para mostrar como está a minha pesquisa.

Código:
procedure TfrmCadComanda.btnPesquisarClick(Sender: TObject);
begin
  if mskPesq.Text = '' then
    showMessage('Digite o nome do Cliente')
    else
    begin
     dm.sdsClientes.Close;
     dm.sdsClientes.DataSet.CommandText:= 'SELECT * FROM CLIENTES';
     btnCancelar.Enabled:= true;
   
     if (RadioGroup1.ItemIndex = 0) then
     begin
     dm.sdsClientes.DataSet.CommandText:=
     dm.sdsClientes.DataSet.CommandText + ' WHERE CLI_NOME = :CLI_NOME ' ;

     dm.sdsClientes.DataSet.Params.ParamByName('CLI_NOME').Value:= mskPesq.Text;

     end
     else
      if (RadioGroup1.ItemIndex = 1) then
       begin

         dm.sdsClientes.DataSet.CommandText:=
         dm.sdsClientes.DataSet.CommandText + ' WHERE CLI_RG = :CLI_RG ' ;
         dm.sdsClientes.DataSet.Params.ParamByName('CLI_RG').Value:= mskPesq.Text;
     end;
     end;
      dm.sdsClientes.Open;

end;


Obrigado.
_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Out 14, 2011 9:13 pm    Assunto: Responder com Citação

Tai, veja se vai funcionar
Código:
procedure TfrmCadComanda.btnPesquisarClick(Sender: TObject);
var
  sSQL: String;
begin
  if mskPesq.Text = EmptyStr then
    showMessage('Digite o nome do Cliente')
  else
  begin
    sSQL := 'SELECT * FROM CLIENTES';
    if not btnCancelar.Enabled then
      btnCancelar.Enabled:= true;

    case RadioGroup1.ItemIndex of
      0: sSQL := sSQL + ' WHERE UPPER(CLI_NOME) LIKE '+ QuotedStr(AnsiUpperCase(mskPesq.Text))+'%';
      1: sSQL := sSQL + ' WHERE CLI_RG = ' + QuotedStr(mskPesq.Text);
    end;

    with dm.sdsClientes do
    begin
      Close;
      CommandText := sSQL;
      Open;
      if IsEmpty then
        ShowMessage('Vazio');
    end;
  end;
end;

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 9:42 pm    Assunto: Responder com Citação

Está dando erro de SQL nesta parte:
Citação:
0: sSQL := sSQL + ' WHERE UPPER(CLI_NOME) LIKE '+ QuotedStr(AnsiUpperCase(mskPesq.Text))+'%';


Estou analizando na onde está esse erro.
Obrigado.
_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Out 14, 2011 9:51 pm    Assunto: Responder com Citação

dedeboy2005 escreveu:
Está dando erro de SQL nesta parte:
Citação:
0: sSQL := sSQL + ' WHERE UPPER(CLI_NOME) LIKE '+ QuotedStr(AnsiUpperCase(mskPesq.Text))+'%';


Estou analizando na onde está esse erro.
Obrigado.

Q tipo de erro?
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 9:56 pm    Assunto: Responder com Citação

É esse daqui:
Citação:
'Token unkown -line 1, char 67 %'. Process stopped.

_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Out 14, 2011 10:10 pm    Assunto: Responder com Citação

dedeboy2005 escreveu:
É esse daqui:
Citação:
'Token unkown -line 1, char 67 %'. Process stopped.
Ha sim, estava errado, coloque o curinga dentro do parenteses

Código:
0: sSQL := sSQL + ' WHERE UPPER(CLI_NOME) LIKE '+ QuotedStr(AnsiUpperCase(mskPesq.Text)+'%');

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Out 14, 2011 10:13 pm    Assunto: Responder com Citação

adriano_servitec escreveu:
dedeboy2005 escreveu:
É esse daqui:
Citação:
'Token unkown -line 1, char 67 %'. Process stopped.
Ha sim, estava errado, coloque o curinga dentro do parenteses

Código:
0: sSQL := sSQL + ' WHERE UPPER(CLI_NOME) LIKE '+ QuotedStr(AnsiUpperCase(mskPesq.Text)+'%');
Esqueci de perguntar

Se vc for usar QUE INICIA COM, é este comando ai, agora se vc quiser a pesquisa CONTENDO ai faça assim

Código:
0: sSQL := sSQL + ' WHERE UPPER(CLI_NOME) LIKE '+ QuotedStr('%'+AnsiUpperCase(mskPesq.Text)+'%');

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree


Editado pela última vez por adriano_servitec em Sex Out 14, 2011 10:27 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 10:23 pm    Assunto: Responder com Citação

Agora foi era isso mesmo que estava querendo.
Muito Obrigado Adriano por me ajudar a resolver esse problema fico agradecido.
Mas não querendo abusar da sua vontade eu fiz um outro campo de pesquisa que é um pouco diferente é seguinte, tem um campo que fiz que para entrada de comanda de restaurante só que quando vou colocar o nome do cliente para registrar a comanda eu procuro nessa pesquisa para saber se o cliente já é cadastrado no sistema, blz pesquiso e vejo o nome do cliente e os dados nessa tabela só quero assim que estou tentando resolver que quando eu clicar o nome do cliente no dbgrid ele preenche os dados da pesquisa nos campos do edits da entrada. Não sei se esta entendo?
_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
pestana
Colaborador
Colaborador


Registrado: Sábado, 25 de Junho de 2005
Mensagens: 3147
Localização: Araras-SP

MensagemEnviada: Sex Out 14, 2011 10:58 pm    Assunto: Responder com Citação

td bem vizinho? rss

Você quer preencher os edits quando clicar em um registro no dbGrid? basta você acessar os valores dos campos.
p.ex: dataSet.FieldByName('campo').AsString ou
dataSetCAMPO.AsString ou
dataSet.Fields[n].AsString (em que 'n' é o número do indice do field)

estou imaginando que os campos já existem no dataSet!

este código acima você coloca no evento OnDblClic ou OnCellClick

é isso que você queria saber?
_________________
Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
dedeboy2005
Aprendiz
Aprendiz


Registrado: Sábado, 31 de Janeiro de 2009
Mensagens: 135
Localização: Limeira-sp

MensagemEnviada: Sex Out 14, 2011 11:19 pm    Assunto: Responder com Citação

Citação:
td bem vizinho? rss

Você quer preencher os edits quando clicar em um registro no dbGrid? basta você acessar os valores dos campos.
p.ex: dataSet.FieldByName('campo').AsString ou
dataSetCAMPO.AsString ou
dataSet.Fields[n].AsString (em que 'n' é o número do indice do field)

estou imaginando que os campos já existem no dataSet!

este código acima você coloca no evento OnDblClic ou OnCellClick

é isso que você queria saber?


Fala vizinho blz cara. rsrsrs
Então é isso mesmo que estou querendo eu estou fazendo isso no evento
OnDblClic do dbgrid.
Obrigado vizinho qualquer coisa me add no msn para gente trocar ideias
Valeu!!!
_________________
Nunca desista dos seus sonhos! Que um dia você chegará nos seus objetivos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário 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
Ir à página 1, 2  Próximo
Página 1 de 2

 
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