Excluindo arquivos.

Delphi

23/05/2003

Tenho duas tabelas se relacionando ´pais e filhos´, antes de apagar a tabela ´pai´ tenho que apagar os registros da tabela ´filho´.
Estou fazendo do seguinte modo:
[color=red:bbf2718d2a] While (not Table.Eof) do
Table.Delete;[/color:bbf2718d2a]
Mas é excluído somente 1 registro como posso ersolver isso ?
Obrigado.


Jeanfiamoncini

Jeanfiamoncini

Curtidas 0

Respostas

Rubensavelino

Rubensavelino

23/05/2003

vc nao avancou na tabela

Entao

[color=red:60f7a49dfe]Table.next;[/color:60f7a49dfe]


GOSTEI 0
Jeanfiamoncini

Jeanfiamoncini

23/05/2003

Putz é mesmo.
Muito Obrigado, valeu.


GOSTEI 0
Jeanfiamoncini

Jeanfiamoncini

23/05/2003

Ainda não funcionou, o que será ?
Ele só exclui 1 registro da tabela filho.
Como posso resolver isso ?
Agradeço a ajuda.


GOSTEI 0
Jairroberto

Jairroberto

23/05/2003

Olá, Jean!

O seu código original estava correto. Quando você usa o método Delete o registro seguinte é selecionado automaticamente no DataSet. Só com este pedaço do código não dá para indicar uma resposta definitiva. Seria necessário saber onde está esta parte do código; se existe algum código do evento BeforeDelete da ´Table´ (tabela filha); dentre outras possibilidades.

Uma possibilidade simples é que você pode estar no último registro da tabela filha, por isso só esse registro é apagado. Experimente usar:

TabelaFilha.First;
while not TabelaFilha.Eof do
  TabelaFilha.Delete;


Um abraço,
Jair
[/code]


GOSTEI 0
Jeanfiamoncini

Jeanfiamoncini

23/05/2003

Estou usando o código acima no evento BeforeDelete da tabela Mãe, na tabela filha não estou colocando nada.


GOSTEI 0
Urso

Urso

23/05/2003

table1.first;
while not table1.eof do begin
table1.delete;
table1.first;
table1.next;
end;

vc deve dar o first logo apos o delete, pois quando vc deleta ele perde o ponteiro...assim vc deve reiniciar o teu while...


GOSTEI 0
Henry

Henry

23/05/2003

meu brother, tente assim:
table1.first;
while not table1.eof do
begin
table1.delete;
table1.next;
end

Se nao funciona, me da um toque no icq, que a gente resolve, blz? \um abraço HEnry.


GOSTEI 0
Jeanfiamoncini

Jeanfiamoncini

23/05/2003

Muito obrigado a todos pelas dicas enviadas, vou tentar todas, assim que conseguir envio resposta, VALEU.


GOSTEI 0
Jeanfiamoncini

Jeanfiamoncini

23/05/2003

Já to no desespero.
Não funciona, ele só entra no while uma vez depois cai fora.


GOSTEI 0
Jeanfiamoncini

Jeanfiamoncini

23/05/2003

COLOQUEI NO AFTERDELETE DA TABELA FILHA O SEGUINTE:
TABLEFILHA.FIRST;

E VUALA FUNCIONOU.

VALEU PESSOAL, MUITO OBRIGADO


GOSTEI 0
POSTAR