Delphi Can

Orjinalini görmek için tıklayınız: Table Bileşen Yazımında Event Yakalama (BeforeDelete Beforepost vb.)
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Öncelikle çeşitli sunucularda yaşadığım çeşitli sorunlardan dolayı bu işe giriştim. Örnek olarak Tunnel'e izin verilmemesi, apache yada iss kütüphane ekleyememe, doğrudan dışarı portların açılması riskini alamamam vb..

Yapmaya çalıştığım virtualtable ile aes 256 bit (cbc) şifreleme kullanarak json ile php üzerinden otomatik olarak update post delete vb işlemleri gerçekleştirmek. Ayrı bir unit olarak yazdım testlerini yaptım sıkıntısız çalıştı. şimdi bunu bileşene çeviriyorum. Yoğunluktan dolayı biraz uzuyor fakat ağırda olsa devam ediyorum.

Unidac virtualTable bileşeninde değişiklikler yaparak yazmaya çalışıyorum. verileri alıp ekleyebiliyorum, silebiliyorum fakat hata durumunda kesemiyorum virtualtable kayıt/silme vb işlemleri tamamlıyor.

Araştırdım fakat sorunuma tam bir cevap bulamadım.

beforeDelete beforePost vb. event ları yakalamam gerekli. hata durumunda ile işlemi tamamlamadan uyarı vermem gerekiyor.
Yalnız burada dikkat edilmesi gereken nokta öncelikli olarak ilgili event a yazılmış kod çalışacak sonrasında bileşenin kendisi devreye girecek.
Örn:beforeDelete ye confirm yazılmışsa önce o devreye girmeli.

bu konuda yardımcı olacak örnek verebilecek tüm delphican'lara teşekkürlerimi şimdiden sunuyorum.
Before event lerin hepsinden Abort; (Bütün işlemleri durdurak) çıkış yapa bilirsiniz.
Kod:
if not DataSet.FieldByName('yetki').AsBoolean then
Abort;

gibi.

PHP Kod:
TVirtualTable = class(TMemDataSet {$IFDEF FPC},IFPObserver{$ENDIF})
protected
procedure DataEvent(EventTDataEventInfoNativeInt); override;
end

kullana bilirsiniz.
(30-04-2020, Saat: 11:38)SecondLife Adlı Kullanıcıdan Alıntı: [ -> ]Before event lerin hepsinden Abort; (Bütün işlemleri durdurak) çıkış yapa bilirsiniz.
Kod:
if not DataSet.FieldByName('yetki').AsBoolean then
Abort;

gibi.

PHP Kod:
TVirtualTable = class(TMemDataSet {$IFDEF FPC},IFPObserver{$ENDIF})
protected
procedure DataEvent(EventTDataEventInfoNativeInt); override;
end

kullana bilirsiniz.

üstadım cevabın için teşekkürler.

data event işimi tam olarak karşılamıyor. yada ben bulamadım.

insert delete post vb. işlemleri işlem başlamadan yakalamam gerekiyor. burada kastettiğim bileşenin object inspector-> event ları değil. Bu bileşeni yazmamdaki amaç object inspector-> event içerisindeki kodlardan kurtulmak.

örnek olarak : memtable post işlemi başlattığında sunucuda işlemi tamamlayarak memtable 'a yansıtmak. eğer database işlemlerinde hata oluşursa bunu kullanıcıya bildirmek. aynı işlemi silme işlemi içinde geçerli silme başladığında sunuca işlemi gerçekleştirmek eğer sunucuda başarılı ise memtable dan silmek...

bu konuda yardımcı olabilirseniz sevinirim.

İyi çalışmalar.