Duvida com LOCATE

Delphi

16/02/2012

uso o LOCATE para localizar registro dentro do clientdataset, atraves do codigo do produto, e sempre para o ponteiro no primeiro registro encontrado, mas se eu quiser continuar pesquisando e localizar o proximo produto com o mesmo codigo, como posso fazer ?

Obrigado
Felipe Ip

Felipe Ip

Curtidas 0

Respostas

Deivison Melo

Deivison Melo

16/02/2012

GOSTEI 0
Alisson Santos

Alisson Santos

16/02/2012

uso o LOCATE para localizar registro dentro do clientdataset, atraves do codigo do produto, e sempre para o ponteiro no primeiro registro encontrado, mas se eu quiser continuar pesquisando e localizar o proximo produto com o mesmo codigo, como posso fazer ?

Obrigado



Bom não sei se auxiliará o que estarei enviando, mais eu trabalho com locate e desenvolvi uma rotina muito legal para as minhas aplicações.

Bom Primeiramente eu desenvolvi essa rotina para consulta na minha query.
procedure pConsulta(tabela, campo, parametro: String);
begin
//Monta o sql que sera utilizado como base para as consultas
//TABELA - sera utilizado a tabela referente ao grid em questão
//CAMPO - Sera utilizado o campo de acordo com o que o usuario selecionar no grid
//Parametro - Valor passado através do edit do form
try
with qryConsulta do
begin
Close;
SQL.Clear;
SQL.Add(SELECT * FROM + tabela);
SQL.Add(WHERE + campo + LIKE + %+ parametro + %);
SQl.Add(ORDER BY + campo);
Open;

//Ativa o dataset
cdsConsulta.Active := true;

//Da um refresh no dataset para atualizar a pesquisa
cdsConsulta.Refresh;
end;

finally
//Limpa o sql da consulta anterior
qryConsulta.SQl.Text := ;
end;
end;

Após aplico da seguinte maneira essa chamada
// Onde o campo chave nas minhas tabela eu seto qual é o campo que quero efetuar a busca,
Criei uma variavel global. E nas telas que eu faço a herança onde está esse código no onActive chamo atribuo o seguinte valor.
CampoChave := CD_PRODUTO.
DataSource.DataSet.Locate(CampoChave, cdsConsulta.FieldByName(CampoChave).AsString, []);

A procedure que desenvolvi ela trata muito do like e assim quando estou digitando ele vai trazendo os valores que preciso.

Caso não entendeu ou precise de mais algo, dá um perguntada.

Lembrando que o comando acima pode ser utilizado de diversas maneiras, é como o nestom, existe mil maneiras de se fazer, invente a sua.


GOSTEI 0
POSTAR