Her database için tek transaction kullanman mantıklı.
Eğer tek kullanıcılı ise böyle olması sorun yaratmaz
Çok kullanıcılı hazırlıyorsan update işlemlerini ayrı bir transaction da yaptırman daha mantıklı olur. Yalnız bunu IBX bileşenleriyle yapamazsın. Üçüncü parti bağlantı bileşenleri kullanman lazım.
konu daha önce geçti. Ayrı ayrı transaction kullanmak daha faydalı.
Ama bazı ekranlarda bir işlem, birden fazla tablo için tek transaction kullanman lazım. Mesela fatura girişi yapıyorsun ve fatura bilgilerini 2 tabloya kaydediyorsun diyelim. Bu işlemi 2 transaction ile değilde, tek transaction ile yapman lazım.
"Üçüncü parti bağlantı bileşenleri kullanman lazım." derken FIBPlus ve IBObjects gibi bileşenleri kastediyorum. Çünkü IBX bütün bağlantı için tek transaction kullanıyor ama FIBPlus update işlemi için farklı transaction atayabilmene izin veriyor.
Ben de bir örnekle naçizane fikrimi söyleyeyim; eğer bir fatura girişi/kayıtı yapıyorsanız ve stoğunuzda kayıtı olmayan bir kalemle karşılaşmışsanız öncelikle o kalem malzeme için stok kartı tanıtımını/kaydını yapmanız gerekir. Fatura formunu kapatmadan bir butonla stok kayıt formunu açıp malzemeyi tanıttığınızda ve kalıcı olarak tabloya kaydedilebilmesi için farklı bir transaction da olması gerekir. Yoksa aynı transaction da olursa faturanın kayıtından vazgeçilmesi durumunda stok tablosundaki yeni kayıt tanıtımı da iptal edilmiş olur Yok ben zaten fatura kaydını tamamlıyorum ve bu olay da sık sık vuku bulan bir durum değil diyorsanız tek transaction yeterlidir. Yani arada değişik şartları düşünerek tercih yapılabilir, ve sadece ufak bir nuans farkı var
Transaction açıldığı/başlatıldığı anda veritabanının o anki görüntüsü/fotoğrafıdır. Başlatıldıktan sonra diğer kullanıcı ve uygulamalar tarafından veritabanına yapılan değişiklikleri kale almaz. Ta ki sonlandırılıp yeniden başlatılıncaya kadar