Duvida sobrte tratamento de erro.

Delphi

22/01/2006

Fato:
* Quando apago algum item de uma tabela que esta relacionada a outra tabela, ocorre um erro, o programa termina.

Duvida:
Como faço para que o programa não termine, e exima uma mensagem sobre o erro.


Ullrich

Ullrich

Curtidas 0

Respostas

Fx|hand

Fx|hand

22/01/2006

TRY

{ROTINA Q APAGA O REGISTRO !}

EXCEPT
ShowMessage(´Ocorreu algum erro !´)
END;



GOSTEI 0
Edilcimar

Edilcimar

22/01/2006

pegue a rotina do fxhand

TRY {ROTINA Q APAGA O REGISTRO !} EXCEPT ShowMessage(´Ocorreu algum erro !´) END;


e acrescente um rollback após o showmessage, que é para reverter a situação


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

22/01/2006

Fato: * Quando apago algum item de uma tabela que esta relacionada a outra tabela, ocorre um erro, o programa termina. Duvida: Como faço para que o programa não termine, e exima uma mensagem sobre o erro.

Colega,

Você pode configurar o banco para cascatear a exclusão, ou seja, se mandar deletar um registro PAI, o banco remove os FILHOS antes para ninguem ficar órfão. Você também pode padronizar em seus algoritmos esta forma de exclusão, ou seja, antes de excluir um registro mestre, remova os detalhes. Se não for este o caso, então as sugestões acima se complementam.


GOSTEI 0
Ullrich

Ullrich

22/01/2006

e acrescente um rollback após o showmessage, que é para reverter a situação

Como faço isso?


GOSTEI 0
Tdqr

Tdqr

22/01/2006

´compoente que faz a ligação ao banco de dados´.Roolback


GOSTEI 0
Ullrich

Ullrich

22/01/2006

procedure TfrmEstado.btbtnExcluirClick(Sender: TObject);
begin
try
Modulo.setEstado.Delete; <-- Trava nesta linha . . .
except
MessageDlg(´Insira valores numéricos corretamente e sem espaco depois dos numeros´, mtWarning,[mbok],0);
Modulo.IBTransaction.Rollback;
end;
end;

O programa continua travando, o procedimento é esse, quando o cursor chega na posicão indicada, o programa trava, como faço para não travar?


GOSTEI 0
POSTAR