Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 10:01 am Assunto: Duvidas sobre pesquisas |
|
|
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 |
|
|
faccruz Colaborador
Registrado: Terça-Feira, 20 de Julho de 2010 Mensagens: 1563
|
Enviada: Sex Out 14, 2011 10:06 am Assunto: |
|
|
Na clausula WHERE da SQL coloque LIKE '%André%' _________________ Facc System - Sistemas para Computador |
|
Voltar ao Topo |
|
|
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 10:10 am Assunto: |
|
|
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 |
|
|
faccruz Colaborador
Registrado: Terça-Feira, 20 de Julho de 2010 Mensagens: 1563
|
Enviada: Sex Out 14, 2011 10:13 am Assunto: |
|
|
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 |
|
|
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 10:19 am Assunto: |
|
|
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 |
|
|
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 8:36 pm Assunto: |
|
|
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 |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Out 14, 2011 9:13 pm Assunto: |
|
|
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 |
|
|
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 9:42 pm Assunto: |
|
|
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 |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
|
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 9:56 pm Assunto: |
|
|
É 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 |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Out 14, 2011 10:13 pm Assunto: |
|
|
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 |
|
|
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 10:23 pm Assunto: |
|
|
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 |
|
|
pestana Colaborador
Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Sex Out 14, 2011 10:58 pm Assunto: |
|
|
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 |
|
|
dedeboy2005 Aprendiz
Registrado: Sábado, 31 de Janeiro de 2009 Mensagens: 135 Localização: Limeira-sp
|
Enviada: Sex Out 14, 2011 11:19 pm Assunto: |
|
|
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 |
|
|
|