durum şu : tablolardan veri sildirmek istemiyoruz. master detail yapılarda veri silmenin zorluklarını yaşamaktansa veya kullanıcının söleme tarzıyla ben bu hesabı artık kullanmıyorum o zaman sileyim ama eski kayıtlarıma döndüğümde görebileyim sorunlarına cevap verebilmek için böyle bir yöntem düşündük. silinen verileri belirtmek için deleted alanı tutuyoruz her tabloda. bu alanda 0 yada 1 (boolean) durumuna göre kayıt silinmişse listelemiyoruz ancak geçmiş kayıtlara dönüldüğünde ismine cismine ulaşıp gösterebiliyoruz.
sorun şu: delphi içinde beforedelete eventinde önce update işlemini yaptırıp sonra delete işlemini abort ederek bu iş gayet güzel oluyor.
ancak özellikle bağlantı hızı düşük clientlarda bu işin çirkinleştiğini farkediyoruz.
dolayısıyla before delete trigger'ında delete işleminin iptal edilmesi onu yerine update işleminin yapılması lazım. ancak kurcaladım ama exception kullanmadan bu işin nasıl yapılabileceğini bulamadım.
Bilen, gören, duyanların insanlık namına bilgi vermeleri rica olunur.



Firebird kullanıyorum. v1.5.1.xxx