problema no Eof

Delphi

09/05/2005

pessoal o laço abaixo deve fazer o seguinte procedimento: Enquanto existir Clientes apague todos os seus telefones e depois o cliente.O laço está funcionando só que qndo chega na linha do eof ele sai mesmo que a condiçao seja false


while not dm.tableClientes.Eof do// antes da tabela cliente chegar ao final ele sai do laço
begin
while not dm.tTelCli.Eof do
begin
dm.tPastMus.Delete;
dm.tPastMus.Next;
end;
dm.tClientes.Delete;
dm.tClientes.Next;
end;

obs: minha tabela esta conectada a um banco de dados Paradox.


Hviana

Hviana

Curtidas 0

Respostas

Ltres

Ltres

09/05/2005

Cara .. se naum me engano naum precisa de next ali.. qdo tu da .delete ele ja pula pro proximo.. tenta fazer sem pra ver se funciona


GOSTEI 0
Rjun

Rjun

09/05/2005

Você não precisar dar o Next. Mas se é para apagar todos os registros faz um SQL.


GOSTEI 0
Daniel_mc

Daniel_mc

09/05/2005

É o seguinte meu camarada creio eu que o código correto seria o seguinte:

while not dm.tableClientes.Eof do// antes da tabela cliente chegar ao final ele sai do laço 
begin 
while not dm.tTelCli.Eof do 
begin 
dm.tPastMus.First;
dm.tPastMus.Delete; 
end; 
dm.tClientes.First; 
dm.tClientes.Delete; 
end; 



GOSTEI 0
Nilza

Nilza

09/05/2005

Oi

Acho que assim funciona:
dm.tClientes.First; 
dm.tPastMus.First;
while not (dm.tableClientes.Eof) do// antes da tabela cliente chegar ao final ele sai do laço 
begin 
while not (dm.tTelCli.Eof) do 
begin 
dm.tPastMus.Delete; 
dm.tPastMus.next;
end; 
dm.tClientes.Delete; 
dm.tClientes.next;
end; 


Caso não funcione, somente exclua o NEXT e teste novamente.

[]´s


GOSTEI 0
Gandalf.nho

Gandalf.nho

09/05/2005

Se a idéia é excluir todos os telefones e clientes, use DELETE FROM tabela
primeiro nos telefones e depois nos clientes. Bem mais rápido e prático.


GOSTEI 0
POSTAR