Excluindo arquivos.
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.
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
Curtidas 0
Respostas
Rubensavelino
23/05/2003
vc nao avancou na tabela
Entao
[color=red:60f7a49dfe]Table.next;[/color:60f7a49dfe]
Entao
[color=red:60f7a49dfe]Table.next;[/color:60f7a49dfe]
GOSTEI 0
Jeanfiamoncini
23/05/2003
Putz é mesmo.
Muito Obrigado, valeu.
Muito Obrigado, valeu.
GOSTEI 0
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.
Ele só exclui 1 registro da tabela filho.
Como posso resolver isso ?
Agradeço a ajuda.
GOSTEI 0
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:
Um abraço,
Jair
[/code]
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
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
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...
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
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.
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
23/05/2003
Muito obrigado a todos pelas dicas enviadas, vou tentar todas, assim que conseguir envio resposta, VALEU.
GOSTEI 0
Jeanfiamoncini
23/05/2003
Já to no desespero.
Não funciona, ele só entra no while uma vez depois cai fora.
Não funciona, ele só entra no while uma vez depois cai fora.
GOSTEI 0
Jeanfiamoncini
23/05/2003
COLOQUEI NO AFTERDELETE DA TABELA FILHA O SEGUINTE:
TABLEFILHA.FIRST;
E VUALA FUNCIONOU.
VALEU PESSOAL, MUITO OBRIGADO
TABLEFILHA.FIRST;
E VUALA FUNCIONOU.
VALEU PESSOAL, MUITO OBRIGADO
GOSTEI 0