Delphi Can
Firedac bileşenleri hakkında - Baskı Önizleme

+- Delphi Can (http://www.delphican.com)
+-- Forum: Delphi (http://www.delphican.com/forum-delphi)
+--- Forum: Genel Programlama (http://www.delphican.com/forum-genel-programlama)
+--- Konu Başlığı: Firedac bileşenleri hakkında (/firedac-bilesenleri-hakkinda.html)



Firedac bileşenleri hakkında - canbir - 16-04-2018

Merhabalar,
Veritabanı:firebird.
delphi tarafında daha önceleri ib bileşenleri kullanırken, delphi versiyonunu yükseltince firedac bileşenlerini kullanmaya başladım.

ib bileşenleri bağlantı şeklim;
ibdatabase <- ibtransaction <- ibquery ->ibupdatesql şeklindeydi. ibquery'nin afterpost vb olaylarında transaction commit-rollback yapıyordum.

Firedac bileşenlerini bu yapıya göre kullanmaya başladım, ancak biraz kurcaladığımda;
  • fdconnection nesnesine direk commit yapılabildiğini gördüm.
  • Daha önce Transaction bileşeninde ayarladığım isolation seviyesinin fdconnection bileşeninde de olduğunu gördüm.
Eğer şu tarz bir yapı kullanılmayacaksa, transaction bileşeni kullanmak gereksiz mi?
try
FDTransaction1.StartTransaction;
a tablosuna kaydet;
b tablosuna kaydet;
FDTransaction1.CommitRetaining;
except
FDTransaction1.RollbackRetaining
end;

FdConnection bileşeninde iki tane transaction (+UpdateTransaction) bağlama property'si mevcut, forma iki tane transaction koyup bağlamalı mı? Transaction.commit kullanılmasa da bu bileşenler arka planda çalışıyorlar mı?


Ayrıca;
  • query nesnesinin, updatesql bağlı olmadan da kalıcı kayıt yapabildiğini gördüm.
Query bileşeni (updatesql olmadan) kalıcı kayıt yapabildiğine göre, updatesql bileşenini artık query bileşenine bağlamaya gerek kalmadı mı?

Yukarıdaki soruları da dikkate alarak, firedac bileşenlerinin doğru bağlantı ve kullanım şekli hakkında bilgi verebilirseniz memnun olurum.


Firedac bileşenleri hakkında - canbir - 16-04-2018

Kendi yorumumu yazayım;
Transaction bileşeninin, örnekteki kod yapısı kullanılmayacaksa projeye dahil edilmeyebileceğini,
Query bileşeninin ise güçlendirildiğini, ibdataset ve ibquerynin birleşimi gibi kullanılabileceğini, böylece kayıt yapabilmek için query'nin updatesql bileşenine ihtiyacı kalmadığını düşünüyorum.

Kendi projemde ise, iki transaction bileşeni ekledim, normal olanın readonly özelliğini true yaptım, Commit işlemlerimi yine transaction bileşeni üzerinden yapacağım, updatesql bileşenini ise kullanmayı düşünmüyorum.