Locate no change do Edit

Delphi

21/01/2004

Ola. Estou dando um locate no change do Edit... Esse procedimento funciona apenas uma vez... ou seja: digito ´A´, ele localiza o primeiro registro com ´A´... depois digito ´n´ e apesar de existir vários registros com ´An... ´ não acaba achando.

Alguem pode me ajudar? Desde já gradeço.


Danielclubedelphi

Danielclubedelphi

Curtidas 0

Melhor post

Rômulo Barros

Rômulo Barros

21/01/2004

Faz assim:

´dados.ClientDataSet1.locate(´rsocial´, Edit1[color=red:a1b103aa60].text[/color:a1b103aa60], [loCaseInsensitive, loPartialKey]);´,


GOSTEI 1

Mais Respostas

Lindomar.des

Lindomar.des

21/01/2004

Colega,

tente isso:

tabela.locate(´campo´, texto, [loCaseInsensitive, loPartialKey]);

inclua a unit Db na clausula uses.


GOSTEI 0
Danielclubedelphi

Danielclubedelphi

21/01/2004

Lindomar, muito obrigado...

Eu não estava usando os dois: [loCaseInsensitive, loPartialKey]. Usava apenas um...

Mas eu não entendi pq funcionou... vc pode me explicar?

Muito obrigado.


GOSTEI 0
Nebrio

Nebrio

21/01/2004

bem o CaseInsensitive procura pelo texto digitado sem fazer diferença entre maiusculo ou minisculo....e o PartialKey procura por partes do texto digitado...


T+

Nébrio


GOSTEI 0
Lindomar.des

Lindomar.des

21/01/2004

Obrigado Nébrio.


GOSTEI 0
Programalista

Programalista

21/01/2004

Caro Lindomar, e quando eu estou usando sqlserver, clientdataset, datamodule....no form eu so tenho o datasource, então como fazer para localizar usando o locate, a partir o onchange de um edit?

Lourival Oliveira
Sete Lagoas - MG


GOSTEI 0
Rômulo Barros

Rômulo Barros

21/01/2004

Basta mandar usar a Unit do seu DataModule e implementar o código abaixo no evento OnChange do Edit:

DataModule.Tabela.Locate(<Parâmetros>);


GOSTEI 0
Programalista

Programalista

21/01/2004

Caro Undeclared Identifier,
após a sua sugestão, estou usando o seguinte código:
´dados.ClientDataSet1.locate(´rsocial´, Edit1, [loCaseInsensitive, loPartialKey]);´, no entanto o delphi me apresenta o seguinte erro:
´ [Error] clientes.pas(72): Incompatible types: ´Variant´ and ´TEdit´
[Fatal Error] cadcli.dpr(6): Could not compile used unit ´clientes.pas´ ´


GOSTEI 0
Lindomar.des

Lindomar.des

21/01/2004

Lourival,

Pelo que vi os colegas do forum responderam sua pergunta, mas para não ser indelicado em não te responder também.... basta incluir o datamudule antes do nome da tabela:

datamodule.tabela.locate(´campo´, texto, [loCaseInsensitive, loPartialKey]);


GOSTEI 0
POSTAR