Guest --MXVinícius -- Postado Novembro 12, 2007 Denunciar Share Postado Novembro 12, 2007 Prezados,Segue código:begin with datamodule1 do begin QVnd.Sql.Clear; QVnd.Sql.ADD('Select * from cad_vnddor.db'); QVnd.Sql.ADD('Where Nome =' + edit6.text); QVnd.Open; DSVnd.DataSet:=QVnd; end; end;Gostaria de modificá-lo para buscar usando LIKE.Podem me ajudar?Grato, Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kasser Postado Novembro 12, 2007 Denunciar Share Postado Novembro 12, 2007 like '''+edit1.text+'%'' '); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Pericles Sevegnani Postado Novembro 12, 2007 Denunciar Share Postado Novembro 12, 2007 ola,para utilizar o operador LIKE, voce deve informar o simbolo % antes e depois da string procurada, assim:WHERE Nome = '%joao%'O problema é que na montagem do SQL no Delphi, voce não esta passando as aspas, que ficam no inicio e fim da busca.então, proceda da seguinte maneira:Query.SQL.Add('WHERE Nome = ' + Char(39) + '%' + Edit6.Text + '%' + Char(39));Onde, Char(39) é uma funcao do Delphi, para retornar o caractere das aspas simples.As vezes, pode dar problema com as aspas simples (39) por causa de alguma configuracao de caractere, então tente com aspas duplas (34).Mas com 1 das duas vai funcionar, de certeza.[]sPéricles Sevegnanihttp://blogsqlserver.blogspot.com/ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 12, 2007 Denunciar Share Postado Novembro 12, 2007 para utilizar o operador LIKE, voce deve informar o simbolo % antes e depois da string procurada, assim:WHERE Nome = '%joao%'apenas completanto, o uso do "%" irá determinar que parte da string será "generalizada". Por exemplo:1) procurar apenas nomes que começam com "MA":- então você teria "MA%" e como resultado poderia ter MAria, MAriana, MAurício;2) procurar apenas nomes que terminam com "DE":- então você teria "%DE" e como resultado poderia ter AdelaiDE, MatilDE;3) procurar nomes que contenham "TE" em qualquer posição. - então você teria (como exemplificado pelo Péricles) "%TE%" e como resultado poderia ter ElizabeTE, TErezinha, MarTEndau.Abraçosp.s.: bom vê-lo por aqui Péricles. Seja bem vindo. ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MXVinícius -- Postado Novembro 13, 2007 Denunciar Share Postado Novembro 13, 2007 (editado) Olá Péricles e olá amigos,Obrigado pelo seu código Péricles, eu busquei bastante e vi que é possível fazer isso de diversas formas, mas achei esse seu método o mais amigável para o programador iniciante.Implementei e funcionou, só substituí = por LIKE.O código para a busca ficou assim:begin with datamodule1 do begin QVnd.Sql.Clear; QVnd.Sql.ADD('Select * from cad_vnddor.db'); QVnd.SQL.Add('WHERE Nome LIKE ' + Char(39) + '%' + Edit6.Text + '%' + Char(39)); QVnd.Open; DSVnd.DataSet:=QVnd; end; Editado Novembro 13, 2007 por Micheus Removido o "Resolvido" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MXVinícius -- Postado Novembro 13, 2007 Denunciar Share Postado Novembro 13, 2007 Interessante, apesar de ter dito que o tópico estava resolvido, agora o código idêntico retorna vazio em um outro formulário.QProd.Sql.Clear; QProd.Sql.ADD('Select * from cad_prod.db'); QProd.SQL.Add('WHERE Descricao LIKE' + Char(39) + '%' + Edit3.Text + '%' + Char(39)); QProd.Open; DSProd.DataSet:=QProd; //QuickRep1.Preview; :unsure: Bem, realmente não é fácil a profissão... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Pericles Sevegnani Postado Novembro 13, 2007 Denunciar Share Postado Novembro 13, 2007 ola,notei que voce esta utilizando outra tabela e outro edit, confere ?Antes de confiar no resultado de uma Query no Delphi, SEMPRE execute-a antes no utilitario SQL (iSql, Query Analyzer, etc.).Para relatorios principalmente, somente passe p/ codificacao no Delphi quando o SQL esta confiavel "por fora".abracos,Péricles Sevegnanihttp://blogsqlserver.blogspot.com/ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MXVinícius -- Postado Novembro 16, 2007 Denunciar Share Postado Novembro 16, 2007 Péricles, Não encontrei um programa iSQL para baixar apenas o outro citado, mas não conseguiu verificar o código dá erros no driver.Ainda estou tentando e testando diversas maneiras de fazer isso, mas ainda sem sucesso.Grato,Vinícius Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MXVinícius -- Postado Novembro 16, 2007 Denunciar Share Postado Novembro 16, 2007 Prezados o código FUNCIONOU e ficou assim:procedure TF_RelaProdutos.BitBtn3Click(Sender: TObject); begin with QProd do begin SQL.Clear; SQL.add ('Select * From cad_prod.db where Nome like:varnome'); Parambyname ('Varnome').asstring:= '%' + edit3.text + '%'; Close; Open; End; end;----------------------------------------------------------------------------Esse fórum é um oásis no deserto, programadores profissionais extremamente qualificados mas muito gentis e prestativos.Muito obrigado.Agora sim, foi RESOLVIDO. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --MXVinícius -- Postado Novembro 16, 2007 Denunciar Share Postado Novembro 16, 2007 Esqueci de mencionar para quem vem pegando a rebarba.A resposta estava aqui:http://scriptbrasil.com.br/forum/index.php...BF%BDentry35210 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --MXVinícius --
Prezados,
Segue código:
Gostaria de modificá-lo para buscar usando LIKE.
Podem me ajudar?
Grato,
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.