Array
(
)

Utilizando ds.dataset.locate para qualquer parte do registro

Elias Jr
   - 15 set 2004

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.


Aroldo Zanela
   - 15 set 2004

Colega,


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


Elias Jr
   - 15 set 2004

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.