Utilizando ds.dataset.locate para qualquer parte do registro

15/09/2004

0

Saudações,
estou utilizando este código para pesquisar algum registro na tabela:

nome := edpesq.text;
if trim(nome) <> ´´ then
begin
if frmcadsin.ds.DataSet.Locate(´matri´, nome, [lopartialkey,locaseinsensitive])= false then
begin
showmessage(´PM não encontrado!´);
exit;
frmpesq.close;

Mas isso funciona apenas com matriculas e nomes inteiros (ou seja, 0001854 ou Paulo José da Silva). Como faço para que o ds.dataset.locate localize por qualquer parte do registro (tipo 1854, sem precisar dos zeros ou apenas José). Agradeço qualquer ajuda.


Elias Jr

Elias Jr

Responder

Posts

15/09/2004

Aroldo Zanela

Colega,


Neste caso, o ideal é utilizar querys e ao invés do operador de igualdade (´=´) utilizar o operador LIKE e curingas (´¬´).


Responder

15/09/2004

Elias Jr

Saudações Aroldo,
eu fiz exatamente isto, o problema é que com a query eu só consegui exibir o resultado da consulta mas não consigo alterar diretamente deste resultado. Exemplo: Eu quero pesquisar a matrícula 0001854, se eu usar a query e pesquisar apenas 1854 ele irá exibir mas se eu tentar alterar o sistema volta para a matrícula 0000001(como se a tablea não tivesse se movido). Já com o ds.dataset.locate o sistema seta realmente o registro pesquisado (fica setado realmente no registro 0001854)e a partir daí eu posso alterá-lo. Se você souber de que forma faço isso com a query ou ds.dataset.locate e puder me ajudar, agradeço.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar