hermes_barrasoft Postado Maio 31, 2006 Denunciar Share Postado Maio 31, 2006 Tenho uma Query.Um DBGrid ligado a ele...Um Edit onde busco com o Query.Locate('nome_do_campo', edit.text, []);Só que a DBGrid não navega... o que está errado?Obrigado.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 1, 2006 Denunciar Share Postado Junho 1, 2006 Se você está digitando o conteúdo parcial e espera posicionar no item mais próximo do digitado, então tente adicionar as opções do locate:- loCaseInsensitive => não diferencia maiúscula de minúsculas- loPartialKey => procura no compo desejado, o valor que inicia com o informado (Edti1.Text)Query.Locate('nome_do_campo', edit.text, [loCaseInsensitive, loPartialKey]); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Junho 1, 2006 Denunciar Share Postado Junho 1, 2006 Muito obrigado, Micheus...Estou começando o trabalho com Query... e o locate na Table não precisa destes parametros... até que tentei isso mas não havia declarado a unit MB...dai fiquei desesperado...Isso resolveu...Obrigado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest FalconSoft Desenvolvimento Postado Junho 5, 2006 Denunciar Share Postado Junho 5, 2006 Ola meu amigo eu tenho uma consulta sensativaela e bem simples de ser feitano onchange do editwhit datamodule.sqlconsulta do begin sql.clear; sql.add (' Select * From Clientes where nome like:varnome') Parambyname ('Varnome').asstring:= Edit1.text +'%' Close;Open;End;End;você gosta de simples exemplo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 6, 2006 Denunciar Share Postado Junho 6, 2006 hermes_barrasoft,apenas exclarecendo, a diferença entre os dois métodos é o seguinte:- no 1º você tem todos os registros no grid e navega (posiciona) para o registro mais próximo daquele que você está digitando- no 2º, cada caracter digitado, vai restringindo o seu resultado de modo que terá apenas os registros que começam com o texto digitado. O caracter % concatenado ao parâmetro indica que serão listados todos os registros que começam com o conteúdo digitado e sejam seguidos por qualquer coisa. Se você desejar procurar por registros que contenham o texto digitado em qualquer posição do campo, deve colocar também um % no início do parâmetro (Parambyname('Varnome').asstring:= '%'+Edit1.text+'%').O uso de um ou outro método, depende de como você pretende apresentar sua consulta.Também, mais um item de otimização: Quando você tem sua consulta (query) estática (um componente TQuery com o SQL pronto, necessitando apenas do parâmeto), no momento de modificar a consulta não há necessidade de "zerar" seu conteúdo (SQL.Clear); Basta que seja fechada a consulta (Close), inicializado o parâmetro e aberta a consulta (Open). Adaptando o exemplo do colega FalconSoft Desenvolvimento:procedure TForm1.EditChange(Sender :TObject); begin whith datamodule.sqlconsulta do begin Close; Parambyname ('Varnome').asstring:= Edit1.text +'%' Open; End; End; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
hermes_barrasoft
Tenho uma Query.
Um DBGrid ligado a ele...
Um Edit onde busco com o Query.Locate('nome_do_campo', edit.text, []);
Só que a DBGrid não navega... o que está errado?
Obrigado....
Link para o comentário
Compartilhar em outros sites
4 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.