varrer tabela ateh o ultimo registro

15/07/2004

0

eu fiz uma rotina pra varrer a tabela assim

tabela.open;
while not tabela.eof do 
begin
  if tabela[´campo´] = valorx then tabela.delete;
  tabela.next;
end;


o problema eh que se o registro for o último ele nao vai passar por essa rotina, como resolver?


Anderson_blumenau

Anderson_blumenau

Responder

Posts

15/07/2004

Lbcosta

Nao use tabela use query é bem + rapido

delete from [b:69eb8a80d1]tabela[/b:69eb8a80d1] where [b:69eb8a80d1]campo [/b:69eb8a80d1]= [b:69eb8a80d1]valorx[/b:69eb8a80d1]


Responder

15/07/2004

Anderson_blumenau

valeu, mas se eu nao quiser usar sql, tem outro jeito?


Responder

16/07/2004

Reginaldo174

acesso rápido;
não precisa usar SQL mas é bom usar Query. Dessa forma será espantosamente mais rápido, veja

var
conta : integer;
begin
conta := 0 ;

while conta = 0 do
begin
if query1.loacate(´nomedocampo´, valorx,[])then
begin
query1.delete;
end
else
conta := 1;
end;


Desta forma vc vai direto no valor que deseja apagar. Sua rotina estará otimizada. :wink:


Responder

16/07/2004

Vinicius2k

Anderson,

Na verdade a rotina vai sempre saltar um registro que deveria ser deletado se estiverem sequenciados, a não ser que :
tabela.open;
while not tabela.eof do 
begin
  if tabela[´campo´] = valorx then tabela.delete
    else tabela.next;
end;


Espero ter ajudado...
T+


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

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